数据的编码和解码--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);
}
});
数据的编码和解码--java例子的更多相关文章
- is 与 == 的区别;小数据池; 编码与解码
1, is 与 == 的区别 == 比较的是两边的值 is 比较的是两边的地址 id () 2,小数据池(在终端中) 数字小数据池的范围 -5 ~ 256 字符串中如果有特殊字符他们的内存地址 ...
- Java中的字节,字符与编码,解码
ASCII编码 ASCII码主要是为了表示英文字符而设计的,ASCII码一共规定了128个字符的编码(0x00-0x7F),只占用了一个字节的后面7位,最前面的1位统一规定为0. ISO-8859-1 ...
- javascript对url进行编码和解码
这里总结下JavaScript对URL进行编码和解码的三个方法. 为什么要对URL进行编码和解码 只有[0-9[a-Z] $ - _ . + ! * ' ( ) ,]以及某些保留字,才能不经过编码直接 ...
- java中的url 编码与解码
什么是application/x-www-form-urlencoded字符串? 答:它是一种编码类型.当URL地址里包含非西欧字符的字符串时,系统会将这些字符转换成application/x-www ...
- 在 Java 中如何进行 BASE64 编码和解码
BASE64 编码是一种常用的字符编码,在很多地方都会用到.JDK 中提供了非常方便的 BASE64Encoder 和 BASE64Decoder,用它们可以非常方便的完成基于 BASE64 的编码和 ...
- Java 8中的Base64编码和解码
转自:https://juejin.im/post/5c99b2976fb9a070e76376cc Java 8会因为将lambdas,流,新的日期/时间模型和Nashorn JavaScript引 ...
- java编码原理,java编码和解码问题
java的编码方式原理 java的JVM的缺省编码方式由系统的“本地语言环境”设置确定,和操作系统的类型无关 . 在JAVA源文件-->JAVAC-->Class-->Java--& ...
- android Java BASE64编码和解码二:图片的编码和解码
1.准备工作 (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础 (2)添加 ImgHelper 工具类 package com.a ...
- java编码与解码(一)
转:https://blog.csdn.net/heyanxi0101/article/details/80356870 java编码与解码(一) 编码表概述和常见的编码表 概述:有字符及其对应的数值 ...
随机推荐
- java实现趣味拼算式
匪警请拨110,即使手机欠费也可拨通! 为了保障社会秩序,保护人民群众生命财产安全,警察叔叔需要与罪犯斗智斗勇,因而需要经常性地进行体力训练和智力训练! 某批警察叔叔正在进行智力训练: 1 2 3 4 ...
- java代码(8) ---guava字符串工具
guava字符串工具 一.Joiner 根据指定的分隔符把字符串连接在一起,MapJoiner执行相同的操作,但是针对Map的key和value 分析源码可知:该类构造方法被private修饰,无法直 ...
- CUDA优化
cuda程序优化 一:程序优化概述 1:精度 在关键步骤使用双精度,其他步骤使用单精度,以获得指令吞吐量和精度的平衡. 2:延迟 先缓冲一定量数据,在交给GPU计算.可以获得较高的数据吞吐量. 3:计 ...
- Spring 源码学习 - 单例bean的实例化过程
本文作者:geek,一个聪明好学的同事 1. 简介 开发中我们常用@Commpont,@Service,@Resource等注解或者配置xml去声明一个类,使其成为spring容器中的bean,以下我 ...
- 游戏开发之UI管理器(跨引擎)
使用UI管理器的目的 使用单场景与zindex结合的方式管理UI. 能够隐藏底层UI达到优化效果. 很好的组织和管理UI. 跨引擎使用. 管理器分类 根据以往经验我开发了三种类型的管理器,队列管理器, ...
- [go设计模式]工厂方法模式
简单工厂就是生产整个计算器,而工厂方法只生产计算器的一部分: 原有的简单工厂可以生'+' '-' '*' '/' ;但是如果添加新的部件'%',厂房就 需要扩充.修改很可以会影响原来部件的正常生产,这 ...
- pip常出问题的操作
pip 是一个 Python 包安装与管理工具. 以pip安装yaml为主: 1.更新pip 打开cmd命令,安装yaml包,输入pip install pyyaml,提示pip已过期 更新pip版本 ...
- Koa源码解析,带你实现一个迷你版的Koa
前言 本文是我在阅读 Koa 源码后,并实现迷你版 Koa 的过程.如果你使用过 Koa 但不知道内部的原理,我想这篇文章应该能够帮助到你,实现一个迷你版的 Koa 不会很难. 本文会循序渐进的解析内 ...
- PAT 1038 Recover the Smallest Number (30分) string巧排序
题目 Given a collection of number segments, you are supposed to recover the smallest number from them. ...
- 1.react的基础
1.react:专注于UI得一个js库 2.选择使用框架得原因: 写起来简单方便了,但是从稳定性上考虑得话还是原生js要稳定,所以也有很多公司直接使用原生js,但是从开发周期上来说时间会长 之前再写页 ...