昨天借了一本《网络程序设计实验教程(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实现 洛谷 P1055 ISBN号码

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public ...

  2. Java实现荷兰国旗问题

    问题描述 现有n个红白蓝三种不同颜色的小球,乱序排列在一起,请通过两两交换任意两个球,使得从左至右的球依次为红球.白球.蓝球.这个问题之所以叫荷兰国旗,是因为将红白蓝三色的小球弄成条状物,并有序排列后 ...

  3. java实现古堡算式

    ** 古堡算式** 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:"ABCDE应该代表不同的数字,问号也代表某个数字!" 华生 ...

  4. Liunx常用运维命令整理记录

    前言 作为后端开发者,掌握一些常用的运维命令也是很有必要的,本文记录常用Liunx运维命令 基本命令 目录切换 cd base-admin/ 切换到当前目录下的base-admin目录 cd .. 切 ...

  5. LocalDateTime在项目中的使用(LocalDateTime对接前端通过时间戳互转、LocalDateTime对接数据库)

    目录 1. 博客编写背景 2. LocalDateTime 前端交互 2.1 LocalDateTime 向前端写入时间戳 2.1.1 fastJson 默认的写入格式 2.1.2 更改 fastJs ...

  6. python3 驱动自动安装脚本

    from pywinauto.application import Applicationimport osimport timeos.system('start C:/Users/Administr ...

  7. 深入浅出-iOS Block原理和内存中位置

    Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0 #简介 今天回顾一下blcok,基本 ...

  8. harbor私有仓库安装

    准备环境 centos7.4 docker-ce 19.03.8 docker-compose version 1.18.0 harbor 版本: 1.7.5   一.安装dokcer # 安装依赖包 ...

  9. 【华为云技术分享】数据库开发:MySQL Seconds_Behind_Master简要分析

    [摘要]对于mysql主备实例,seconds_behind_master是衡量master与slave之间延时的一个重要参数.通过在slave上执行"show slave status;& ...

  10. 用python复制文件夹

    用python复制文件 1. 根据文件夹的名称复制 需要复制的文件夹编号文件中,每一行表示一个编号,如下所示: > cat id.txt 1 2 3 ... > 目标文件的目录结构树如下所 ...