public static void convertToUnicode() {
String originString = "\\e6\\aa\\a2\\e8\\a6\\96\\e6\\aa\\a2 \\e6\\aa\\a2 \\e8\\a6\\96 \\e \\";
String[] utfStrings= new String[3];
byte[] UTF8_Encoding = new byte[3];
int index = 0;
try {
for (int i = 0; i < originString.length(); i++) {
char cur = originString.charAt(i);
if (cur == '\\' && i + 2 < originString.length()) {
String str = originString.substring(i, i + 3);
char a = originString.charAt(++i);
char b = originString.charAt(++i);
if (isHexNum(a) && isHexNum(b)) {
utfStrings[index++] = String.valueOf(str);
} else {
System.out.print(str);
index = 0;
}
} else {
for (int j = 0; j < index; j++) {
System.out.print(utfStrings[j]);
}
System.out.print(cur);
index = 0;
}
if (index == UTF8_Encoding.length) {
for (int j = 0; j < utfStrings.length; j++) {
UTF8_Encoding[j] = (byte) (Integer.parseInt(utfStrings[j].substring(1),
16));
}
System.out.print(new String(UTF8_Encoding, "UTF-8"));
index = 0;
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
private static boolean isHexNum(char ch) {
return (ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'f');
}
public static void convertString() {
String utf = "\\e6\\aa\\a2\\e8\\a6\\96\\e7\\99\\bc\\e7\\a5\\a8\\e4\\ba\\a4\\e8\\b2\\a8\\e8\\ad\\89\\e6\\98\\8e\\e9\\a0\\85\\e7\\9b\\ae";
byte[] codes = new byte[3];
int index = 0;
char[] chs = new char[2];
try {
for (int i = 0; i < utf.length(); i++) {
char ch = utf.charAt(i);
if (ch == '\\') {
if (i + 2 >= utf.length()) {
System.out.println("wrong input! Please check");
break;
}
chs[0] = utf.charAt(++i);
chs[1] = utf.charAt(++i);
if (isNum(chs[0]) && isNum(chs[1])) {
String s = String.valueOf(chs);
codes[index++] = (byte) (0xff & Integer.parseInt(s, 16));
} else {
System.out.print(ch);
System.out.print(chs);
}
} else {
System.out.print(ch);
}
if (index >= codes.length) {
index = 0;
System.out.print(new String(codes, "UTF-8"));
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
private static boolean isNum(char a) {
return (a >= '0' && a <= '9') || (a >= 'a' && a <= 'z');
}
分享到:
相关推荐
Utf8ToHex工具的作用就是将UTF-8编码的字符串转换成16进制形式的字符串,这对于开发者来说非常有用。例如,在调试网络通信协议时,可能需要查看数据包中的字符串是否正确编码;在编程时,也可能需要将字符串转换为16...
因此,将字符串转换为16进制ASCII值意味着将每个字符的ASCII码转换为16进制形式。 以下是一个简单的Java方法,用于将字符串转换为16进制ASCII表示: ```java public static String strToHex(String input) { ...
这里,`encode('utf-8')`将字符串按照UTF-8编码转换为字节,然后`.hex()`方法将这些字节转换为16进制字符串。 **16进制字节转字符串:** 反之,如果我们有一个16进制字节序列,想要将其还原为字符串,我们需要先将...
- `printHexString`方法用于将字节数组以16进制形式打印到控制台。它循环遍历数组中的每个字节,将其转换为16进制字符串,并在每个字节之间添加空格,便于阅读。 这些方法在实际开发中非常有用,特别是在处理二...
对于16进制转字符串的程序,可能接受一个16进制字符串作为输入,然后输出相应的字符串结果。而URL解码的程序则会接收一个已经编码过的URL,处理其中的百分号编码,返回可读的原始URL。这些小程序可能使用了编程语言...
这个"字符串 16进制互转.rar"压缩包文件显然提供了一个实用工具,可以帮助用户便捷地进行16进制和字符之间的转换。这个工具对于那些需要处理底层数据,如软件开发、数据分析或者网络通信的专业人士来说尤其有用。 ...
在计算机中,字符串是用特定编码(如ASCII、Unicode或UTF-8)来存储和处理的,这些编码将字符映射到特定的数值,可能是16进制表示的。 16进制转字符串的过程通常涉及以下步骤: 1. 将16进制数转换为十进制数。这是...
`Hex2Utf8`函数是关键,它将16进制的Unicode字符编码转换为UTF-8编码的百分比形式,适合作为URL参数。 在实际使用中,只需要调用`字符串对象.UrlEncode()`或`字符串对象.UrlEncodeGB2312()`即可将字符串转换为适合...
这里需要注意的是,16进制字符串通常表示字节的序列,所以如果字符串包含非ASCII字符(如UTF-8编码的多字节字符),转换时必须考虑字符编码。在上面的例子中,我们假设输入的16进制字符串代表UTF-8编码的字节序列。 ...
这个函数负责将16位的十六进制字符串转换为UTF-8格式。 #### 3. GB2312到UTF-8转换 ```javascript function Gb2312ToUtf8(s1) { var s = escape(s1); var sa = s.split("%"); var retV = ""; if (sa[0] != "") ...
9. 编码过程:编码过程非常简单,任何字符只要不是 ASCII 码数字、字母,或者前面提到的标点符,它们都将被转换成字节形式,每个字节都写成这种形式:一个“%”后面跟着两位 16 进制的数值。 10. 空格的特殊处理:...
因此,对于包含汉字的字符串,我们通常使用Unicode编码,如UTF-8,它可以覆盖全球大部分语言的字符集。 十六进制(HEX)是逢16进1的计数制,由0-9和A-F这16个符号组成。在编程中,十六进制常用于表示颜色、内存地址...
因此,将字符串转换为16进制码的过程实际上就是将字符串中每个字符的编码转换成16进制的形式。 在Python编程语言中,可以使用内置的`hex()`函数或者`ord()`和`format()`函数组合来实现这个转换。例如,对于一个字符...
对于汉字到16进制Unicode的转换,我们需要首先获取汉字的Unicode码点,这通常通过`char.GetHashCode()`或者`char.GetUnicodeCategory()`等方法获取,然后将得到的码点转换为16进制字符串。 在实际开发中,我们可能...
接着指定字符集(如UTF-8或GB2312),获取相应的编码对象,并将字符串转换为字节数组。最后,遍历字节数组并将其每个元素转换为十六进制字符串,同时可以根据参数选择是否在每个十六进制数之间插入分隔符。 ```...
4. 十六进制到UNICODE:根据用户选择的高低位顺序,将16进制数据转换回UNICODE字符串。对于高位在前的UTF-16BE,需要先组合高位字节,再组合低位字节;反之,对于低位在前的UTF-16LE,则相反。 这个工具的实用性...
"从二进制文件中取utf8的汉字"这一主题涉及到的是如何从二进制文件中提取用UTF-8编码表示的汉字字符。UTF-8是一种广泛使用的Unicode字符编码,它能够表示世界上几乎所有的文字系统,包括汉字。 首先,我们需要理解...
例如,`Encoding.ASCII.GetBytes(str)`或`Encoding.UTF8.GetBytes(str)`将字符串按照指定编码转换为字节数组。 - **GetString()**: 反之,字节数组可以转换回字符串,如`Encoding.ASCII.GetString(bytes)`或`...
### IT知识点:Java中16进制数据与字符串(含中文)的相互转换 #### 核心概念 在计算机科学中,十六进制(Hexadecimal)是一种常用的数值表示方法,通常用于表示二进制数据,因为十六进制的每一位可以表示四位二...
- 将汉字字符串转换为二进制数据,可能用到`WideCharToMultiByte`函数,以获取UTF-8或GBK编码的字节序列。 - 将二进制数据转换为16进制字符串,可能通过遍历字节序列并逐个转换为16进制数字完成。 6. **实践应用*...