昨天借了一本《网络程序设计实验教程(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);
}
});

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

  1. is 与 == 的区别;小数据池; 编码与解码

    1, is 与 == 的区别 ==  比较的是两边的值 is   比较的是两边的地址  id () 2,小数据池(在终端中) 数字小数据池的范围 -5 ~ 256 字符串中如果有特殊字符他们的内存地址 ...

  2. Java中的字节,字符与编码,解码

    ASCII编码 ASCII码主要是为了表示英文字符而设计的,ASCII码一共规定了128个字符的编码(0x00-0x7F),只占用了一个字节的后面7位,最前面的1位统一规定为0. ISO-8859-1 ...

  3. javascript对url进行编码和解码

    这里总结下JavaScript对URL进行编码和解码的三个方法. 为什么要对URL进行编码和解码 只有[0-9[a-Z] $ - _ . + ! * ' ( ) ,]以及某些保留字,才能不经过编码直接 ...

  4. java中的url 编码与解码

    什么是application/x-www-form-urlencoded字符串? 答:它是一种编码类型.当URL地址里包含非西欧字符的字符串时,系统会将这些字符转换成application/x-www ...

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

    BASE64 编码是一种常用的字符编码,在很多地方都会用到.JDK 中提供了非常方便的 BASE64Encoder 和 BASE64Decoder,用它们可以非常方便的完成基于 BASE64 的编码和 ...

  6. Java 8中的Base64编码和解码

    转自:https://juejin.im/post/5c99b2976fb9a070e76376cc Java 8会因为将lambdas,流,新的日期/时间模型和Nashorn JavaScript引 ...

  7. java编码原理,java编码和解码问题

    java的编码方式原理 java的JVM的缺省编码方式由系统的“本地语言环境”设置确定,和操作系统的类型无关 . 在JAVA源文件-->JAVAC-->Class-->Java--& ...

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

    1.准备工作 (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础 (2)添加 ImgHelper 工具类 package com.a ...

  9. java编码与解码(一)

    转:https://blog.csdn.net/heyanxi0101/article/details/80356870 java编码与解码(一) 编码表概述和常见的编码表 概述:有字符及其对应的数值 ...

随机推荐

  1. Java实现 蓝桥杯VIP 算法训练 整除问题

    问题描述 编写一个程序,输入三个正整数min.max和factor,然后对于min到max之间的每一个整数(包括min和max),如果它能被factor整除,就把它打印出来. 输入格式:输入只有一行, ...

  2. Java实现大整数乘法

    1 问题描述 计算两个大整数相乘的结果. 2 解决方案 2.1 蛮力法 package com.liuzhen.chapter5; import java.math.BigInteger; publi ...

  3. Java实现 洛谷 P1028 数的计算

    import java.util.Scanner; import java.util.Arrays; public class Main { private static Scanner cin; p ...

  4. Java实现冗余路径Redundant Paths

    Description In order to get from one of the F (1 <= F <= 5,000) grazing fields (which are numb ...

  5. uniapp每隔几秒执行一下网络请求(h5端亲测可以,其他端未测试)

    methods: { //执行网络请求 run() { uni.request({ method: 'GET',//请求方式 url: ‘’//请求地址 }).then(res=>{ conso ...

  6. requireJS模块化

    1. JavaScript里面js代码的写法:目标是解决冲突和依赖 函数式编程,全局函数和变量--很容易覆盖 对象的写法--也会从外面改变 命名空间:利用名称不同缓冲js代码的冲突---名称太长,不方 ...

  7. CentOS8.1操作系下使用通用二进制包安装MySQL8.0(实践整理自MySQL官方)

    写在前的的话: 在IT技术日新月异的今天,老司机也可能在看似熟悉的道路上翻车,甚至是大型翻车现场!自己一个人开车过去翻个车不可怕,可怕的是带着整个团队甚至是整个公司一起翻车山崖下,解决办法就是:新出现 ...

  8. iOS-字典转模型(单模型)的实现

    用模型取代字典的好处 使用字典的坏处 一般情况下,设置数据和取出数据都使用“字符串类型的key”,编写这些key时,编译器不会有任何友善提示,需要手敲, eg:dict[@"name&quo ...

  9. html中隐藏域hidden

    基本语法: <input type="hidden" name="field_name" value="value"> 作用: ...

  10. 关于前端JS走马灯(marquee)总结

    方案一: <marquee width="360" scrolldelay="20" scrollamount="2" onclick ...