zoukankan      html  css  js  c++  java
  • 数据的编码和解码--java例子

      昨天借了一本《网络程序设计实验教程(java语言)》,然后看了第一章,一个Swing例子,于是为大家分享一下!

      关于数据的编码与解码,我觉得就例子而言已经交待得非常清楚了,两种方法做的。

      将其转为16进制来弄的

    //utf8解码
            btnUTF8Decode = new JButton("UTF8u89E3u7801u7801u7ED3u679C");
            btnUTF8Decode.addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    String hexStr = tfBytes.getText();
                    String[] strs = hexStr.split(" ");
                    byte[] bytes = new byte[strs.length];
                    for (int i=0;i<strs.length; i++){
                        bytes[i] = (byte) Integer.valueOf(strs[i],16).intValue();
                    }
                    String string = "";
                    try {
                        string = new String(bytes,"UTF-8");
                    } catch (UnsupportedEncodingException e2) {
                        // TODO: handle exception
                        e2.printStackTrace();
                    }finally {
                        tfCharsUTF8.setText(string);
                    }
                }
            });
            
    //gbk解码
            btnGBKDecode = new JButton("GBKu89E3u7801u7ED3u679C");
            btnGBKDecode.addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    String hexStr = tfBytes.getText().toString().trim();
                    String[] strs = hexStr.split(" ");
                    byte[] array = new byte[strs.length];
                    for (int i=0; i<strs.length; i++){
                        array[i] = (byte) Integer.valueOf(strs[i],16).intValue();
                    }
                    Charset cs = Charset.forName("GBK");
                    CharBuffer buffer = cs.decode(java.nio.ByteBuffer.wrap(array));
                    tfCharsGBK.setText(buffer.toString());
                }
            });
    //UTF8编码
            btnUTF8Encode = new JButton("UTF8u7F16u7801u7ED3u679C");
            btnUTF8Encode.addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    String str = tfChars.getText();
                    String hexStr = "";
                    try {
                        byte[] bytes = str.getBytes("UTF-8");
                        for (int i=0; i<bytes.length; i++){
                            hexStr += Integer.toHexString(bytes[i] & 0xFF).toUpperCase()+" ";
                        }
                    } catch (UnsupportedEncodingException e2) {
                        // TODO: handle exception
                        e2.printStackTrace();
                    }finally {
                        tfBytesUTF8.setText(hexStr);
                    }
                }
            });
    //编码GBK
            JButton btnGBKEncode = new JButton("GBKu7F16u7801u7ED3u679C");
            btnGBKEncode.addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    String str = tfChars.getText().toString().trim();
                    Charset cs = Charset.forName("GBK");
                    java.nio.ByteBuffer buffer = cs.encode(str);
                    String hexStr = "";
                    while (buffer.remaining() > 0){
                        hexStr += Integer.toHexString(buffer.get() & 0xFF).toUpperCase() + " ";
                    }
                    tfBytesGBK.setText(hexStr);
                }
            }); 
  • 相关阅读:
    20200305 VMware虚拟机安装及centOS
    20200303 pandas
    20200302 数据分析之numpy以及Jupyter
    Bash(Terminal)高频命令
    E117: Unkown function: vundle#installer#new
    字符串输入之%s
    结合getchar()理解缓冲区
    在HEXO主题中添加站内搜索
    字符串的全排列
    无法启动程序,系统找不到指定的文件
  • 原文地址:https://www.cnblogs.com/ljy-1471914707/p/7007988.html
Copyright © 2011-2022 走看看