昨天借了一本《网络程序设计实验教程(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 算法训练 最长字符串

    题目描述 字符串可是比赛经常出的问题,那么给大家出一个题, 输入五个字符串,输出5个字符串当中最长的字符串.每个字符串长度在100以内,且全为小写字母. 输入 无 输出 无 样例输入 one two ...

  2. Java实现 LeetCode 329 矩阵中的最长递增路径

    329. 矩阵中的最长递增路径 给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕). 示例 1: ...

  3. Java实现 蓝桥杯VIP 算法训练 接水问题

    题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共两行,第一行为n:第二行分别 ...

  4. Java实现 蓝桥杯VIP 算法训练 字符串编辑

    算法训练 字符串编辑 时间限制:1.0s 内存限制:512.0MB 问题描述 从键盘输入一个字符串(长度<=40个字符),并以字符 '.' 结束.编辑功能有: 1 D:删除一个字符,命令的方式为 ...

  5. Android如何使用SharedPreferences轻量级储存

    SharedPreferences只能用来存一些基本数据类型,并且存下的量比较小 直接附代码 和XMl布局 package com.example.okhttpdemo; import android ...

  6. Java实现分割矩形

    给定平面内平行于坐标轴的一个矩形,从矩形内选 择一些点,从这些点向右和向上各射出一条射线, 请问:这些射线将矩形分成了多少份. 数据格式: 输入的第一行包含两个整数x, y,表示矩形是由(0, 0), ...

  7. (十)DVWA之SQL Injection--测试分析(Impossible)

    DVWA之SQL Injection--测试分析(Impossible) 防御级别为Impossible的后端代码:impossible.php <?php if( isset( $_GET[ ...

  8. python—列表,元组,字典

    ——列表:(中括号括起来:逗号分隔每个元素:列表中的元素可以是数字,字符串,列表,布尔值等等) (列表元素可以被修改)  list(类)    (有序的) [1]索引取值:切片取值:for循环:whi ...

  9. MAC/VMware配置双机调试简述

    Configuration 注:建议提前备份所有修改内容,可能会导致无法开机. 我的测试环境: server: windows 10 + windbg client: windows 7 Server ...

  10. FTP配置多用户多目录多权限

    环境介绍 根据开发的需求 要求创建FTP服务器,把前端和后端分开用不同的FTP账号 系统环境 centos 7.4 selinux 关闭 防火墙关闭 安装FTP 很简单就一条命令 yum instal ...