数据的编码和解码--java例子

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

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

  将其转为16进制来弄的

//utf8解码
        btnUTF8Decode = new JButton("UTF8\u89E3\u7801\u7801\u7ED3\u679C");
        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("GBK\u89E3\u7801\u7ED3\u679C");
        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("UTF8\u7F16\u7801\u7ED3\u679C");
        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("GBK\u7F16\u7801\u7ED3\u679C");
        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);
            }
        }); 
时间: 2024-08-02 22:54:13

数据的编码和解码--java例子的相关文章

支持对流数据进行编码和解码的Xceed Binary Encoding Library控件

Xceed Binary Encoding Library控件是一款为Windows软件开发人员准备的,使应用程序可以把编码二进制数据以及文件转换为文本或者把文本转换为编码二进制数据,该产品包含在 Xceed Ultimate Suite 套包中. 具体功能: 兼容RFC-2045, RFC-1741, RFC-2045 支持多种编码解码类型:UUEncode, XXEncode, Base64, Binhex, Quoted-Printable, plain Hexadecimal 完全支持对

Java 之 IO操作—— 文本数据的编码和解码

一.解码 当要读取指定编码的纯文本数据时,可以使用 InputStreamReader 进行解码.所谓解码,即把二进制的字节序列按照指定字符编码解码为可以被正确识别的字符内容. Demo:当前系统平台的字符编码方式是:GBK,需要读取一个UTF-8 的文件内容,到当前系统中. 1 import java.io.BufferedReader; 2 import java.io.FileInputStream; 3 import java.io.IOException; 4 import java.

高级编码和解码技术

Go 的标准库包含了一些很不错的编码和解码包,里面涵盖了大量的编码方案.一切数据,不管是CSV,XML,JSON,还是 gob -- 一个 Go 特定的编码格式,都涵盖在内,并且,这些包都非常容易上手使用. 事实上,它们中的大多数都不需要再添加任何代码,你只需插入数据,它就会输出编码后的数据. 不过,并不是所有的应用程序都乐于处理这种到 JSON 展现的一对一映射.Struct 标记可以涵盖一些场景中的大多数情况,但如果你使用了很多 API,它的功能还是有限. 例如,你可能会遇到一个 API,它

javascript对url进行编码和解码

这里总结下JavaScript对URL进行编码和解码的三个方法. 为什么要对URL进行编码和解码 只有[0-9[a-Z] $ - _ . + ! * ' ( ) ,]以及某些保留字,才能不经过编码直接用于URL,其他的字符如果不经过编码可能会导致各种各样的问题. 很容易找到编码和解码的例子,比如在搜索引擎搜索的中文关键字,复制网址之后再粘贴会发现该URL已经被转码. escape()和unescape() 原理:对除ASCII字母.数字.标点符号[@  *  _  +  -  .  /]以外的其

在 Java 中如何进行 BASE64 编码和解码

BASE64 编码是一种常用的字符编码,在很多地方都会用到.JDK 中提供了非常方便的 BASE64Encoder 和 BASE64Decoder,用它们可以非常方便的完成基于 BASE64 的编码和解码.下面是本人编的两个小的函数,分别用于 BASE64 的编码和解码: // 将 s 进行 BASE64 编码 public static String getBASE64(String s) { if (s == null) return null; return (new sun.misc.B

了解URL编码的基本概念,在javascript和java程序中使用内置的API进行编码和解码

1.URL编码的基本概念 URL只能使用US-ASCII 字符集来通过因特网进行发送.由于URL常常会包含 ASCII 集合之外的字符,URL必须转换为有效的 ASCII 格式.URL 编码使用 "%" 其后跟随两位的十六进制数来替换非 ASCII 字符.URL 不能包含空格,URL 编码通常使用 + 来替换空格.所谓URL编码,就是将非US-ASCII字符和US-ASCII中的特殊字符,用相应的字符集编码来表示.比如,汉字"你",如果用UTF-8编码,出现在URL

Java中的编码与解码

前言:今天遇到一个问题,一个用户在登录的时候,出现登录失败.但是其他用户登录都是正常的,经过调试发现登录失败的用户的密码中有两个特殊字符: * .#  . 特殊符号在提交表单的时候,出现了编码不一样的问题.那么编码是什么鬼?? 1.什么是application/x-www-form-urlencoded字符串? 它是一种编码类型. 当URL地址里包含非西欧字符的字符串时,系统会将这些字符转换成application/x-www-form-urlencoded字符串. 表单提交时也是如此,当包含非

android Java BASE64编码和解码二:图片的编码和解码

1.准备工作 (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础 (2)添加 ImgHelper 工具类 package com.app21; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.IOException; import android.graphics.Bitmap; import android

java编码与解码(一)

转:https://blog.csdn.net/heyanxi0101/article/details/80356870 java编码与解码(一) 编码表概述和常见的编码表 概述:有字符及其对应的数值组成的一张表 常见的编码表 ASCII:美国标准信息交换表ISO8859-1:拉丁码表,欧洲码表GB2312:中国的中文编码表GBK:中国的中文编码表升级GB18030:GBK的取代版本BIG5:通用于香港.台湾地区的繁体字编码方案UTF-8:最多用3个子节表示一个字符Unicode:国际标准码,融