package com.test;
import java.io.ByteArrayOutputStream;
public class Test {
public static void main(String []args){
System.out.println(encode("中文"));
System.out.println(decode(encode("中文")));
}
/*
* 16进制数字字符集
*/
private static String hexString="0123456789ABCDEF";
/*
* 将字符串编码成16进制数字,适用于所有字符(包括中文)
*/
public static String encode(String str)
{
//根据默认编码获取字节数组
byte[] bytes=str.getBytes();
StringBuilder sb=new StringBuilder(bytes.length*2);
//将字节数组中每个字节拆解成2位16进制整数
for(int i=0;i<bytes.length;i++)
{
sb.append(hexString.charAt((bytes[i]&0xf0)>>4));
sb.append(hexString.charAt((bytes[i]&0x0f)>>0));
}
return sb.toString();
}
/*
* 将16进制数字解码成字符串,适用于所有字符(包括中文)
*/
public static String decode(String bytes)
{
ByteArrayOutputStream baos=new ByteArrayOutputStream(bytes.length()/2);
//将每2位16进制整数组装成一个字节
for(int i=0;i<bytes.length();i+=2)
baos.write((hexString.indexOf(bytes.charAt(i))<<4 |hexString.indexOf(bytes.charAt(i+1))));
return new String(baos.toByteArray());
}
}
运行结果:
分享到:
相关推荐
java代码,从16进制数直接转化成字符串(包括中文)简单好用
本压缩包里含有2个小程序,分别用于16进制转字符串,URL解码,无需安装任何工具,一键出结果,是自己编写的。
netty服务器解析16进制数据
hexdecode 将16进制字符串以指定字符集进行解码成字符 hexencode 将字符串指定字符集进行编码成16进制字符串 hexstring 将字符串指定字符集进行编码成16进制字符串 power 求数字的幂函数 replace 将指定字符串中的源...
编码包含的是中文,英文,俄文还是日文什么的,只要把它转换成Unicode就能被识别,而不用再考虑其他字符集的问题,UTF8是Unicode得一种实现方式。 unicode编码(UTF8)的十六进制 与字符 互相转换
PB关于字符进制数转化及base64加密、解密 1、字符型十六进制数转为十进制数值 2、十进制数转为十六进制字符 3、base64加密 4、base64解密 5、将blob转为byte数组
因为本程序遇到"\"就按16进制解码,直到下一个"\"出现,标志结束16进制发送; 如果只想发送16进制数据,在命令框内输入为:\10 1F DF AC 1A CB\ 然后加入命令框中,发送命令即可。 一定注意16进制数据输入不需要...
22.将16进制字符串低位字节补零 23.将十进制整数转为十六进制数,并补位 24.十六进制字符串 高低位转换 25.蓝牙传输 16进制 高低位 读数的 转换 26.数字分割处理 27.数字加分割 28.实现按字符串位数在前面补0 29....
懂得人都知道16进制 和 10进制 在 易语言 中会常常用到 编码字符串解码 等等老是调用模块结果不学其中的精华 现在一堆东西没了模块估计这哥们儿没得玩了 废话完了,算法就是第一个数 ×16 +第二个数有字母的还得转换...
hex - 编码和解码十六进制字符串 用于编码和解码十六进制字符串的简单工具。 用法: var hex = require('hex'); var encodedString = hex.encode('Hello world'); // encodedString == "48656c6c6f20776f726c64" ...
可对URL地址进行编解码,还有对SQL语句转换成16进制格式。嘿嘿~其实主要用来做注入测试呢。。
将数据编码为十六进制表示形式和从十六进制表示形式解码数据。 例子 编码String let hex_string = hex :: encode ( "Hello world!" ); println! ( "{}" , hex_string); // Prints "48656c6c6f20776f726c6421" ...
Hex 编码/解码工具,可以把任意字符串编码为16进制表示的字符,也可以把16进制字符还原为原始字符串。
所有的空格符、标点符号、特殊字符以及更多有联系非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是 。 escape不编码字符有69个:*,+,-,....
将汉字进行UNICODE编码,如:“王”编码后就成了“\王”,UNICODE字符以\u开始,后面有4个数字或者字母,所有字符都是16进制的数字,每两位表示的256以内的一个数字。而一个汉字是由两个字符组成,于是就很容易理解...
二进制字符串序列化,它按字节顺序对任意复杂的数据结构进行排序,同时有效地考虑了按结构的排序。 目的 使用可读的二进制字符串序列化而不是Buffer。 当number为整数且小于MaxUInt32时,添加integer(int32)序列...
所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是 。 不会被此方法编码的字符: @ * / + encodeURI...
主要给大家介绍了关于c#中自定义Base16编码解码的相关资料,并且给大家分享了C#中16进制转换为Base64字符串的方法示例,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
实现普通字符与Unicode编码互换,在C++Builder2010开发环境中
DES加密后转为16进制 encryptDES2HexString DES加密 encryptDES DES解密Base64编码密文 decryptBase64DES DES解密16进制密文 decryptHexStringDES DES解密 decryptDES 3DES加密后转为Base64编码 encrypt3DES2Base64 ...