转载:
package cn.com.wap.util;
/**
*
* @作者 meriny
* @日期 Jun 17, 2010 9:19:15 AM
* 将ASCII编码格式的中文转化为gbk格式的中文
*/
public class AsciiUtil {
public static String ascii2native(String str) {
String hex = "0123456789ABCDEF";
StringBuffer buf = new StringBuffer();
int ptn = 0;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c == '\\' && i + 1 <= str.length() && str.charAt(i + 1) == '\\') {
buf.append("\\\\");
i += 1;
} else if (c == '\\' && i + 6 <= str.length() && str.charAt(i + 1) == 'u') {
String sub = str.substring(i + 2, i + 6).toUpperCase();
int i0 = hex.indexOf(sub.charAt(0));
int i1 = hex.indexOf(sub.charAt(1));
int i2 = hex.indexOf(sub.charAt(2));
int i3 = hex.indexOf(sub.charAt(3));
if (i0 < 0 || i1 < 0 || i2 < 0 || i3 < 0) {
buf.append("\\u");
i += 1;
} else {
byte[] data = new byte[2];
data[0] = i2b(i1 + i0 * 16);
data[1] = i2b(i3 + i2 * 16);
try {
buf.append(new String(data, "UTF-16BE").toString());
} catch (Exception ex) {
buf.append("\\u" + sub);
}
i += 5;
}
} else {
buf.append(c);
}
}
return buf.toString();
}
@SuppressWarnings("unused")
private static int b2i(byte b) {
return (int) ((b < 0) ? 256 + b : b);
}
private static byte i2b(int i) {
return (byte) ((i > 127) ? i - 256 : i);
}
}
分享到:
相关推荐
本篇文章将深入探讨如何在VC++环境中,利用MFC(Microsoft Foundation Classes)框架实现GBK编码与汉字之间的转换,以及BCD(Binary Coded Decimal)编码和ASCII编码的转换。 首先,我们来看GBK编码和汉字的转换。...
1. **汉字转ASCII**:当需要将汉字转换为ASCII码时,易语言会先将汉字编码(如GBK或UTF-8)转换为对应的Unicode编码,因为ASCII码是Unicode的一部分。然后,对于每个Unicode码点,如果其值小于128(即在ASCII范围内...
对于GBK和其他非ASCII编码,需要使用`QTextCodec`进行转换。 2. **GBK到Unicode/UTF-8**:可以使用`QTextCodec::codecForName("GBK")`创建编码器,然后调用`fromUnicode()`或`toUnicode()`方法完成转换。 3. **...
汉字ASCII表是指使用ASCII编码表示汉字的一种方式。ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,最初设计为7位的二进制数,能够表示128...
3. GBK编码:GBK是针对中文环境的扩展ASCII编码,它在GBK编码中增加了许多汉字和其他符号,总共可以表示20902个汉字以及一些其他字符。GBK是在GB2312基础上的扩展,兼容GB2312,广泛应用于简体中文系统。 4. ...
URL编码,全称为统一资源定位符(Uniform Resource Locator)编码,是互联网上数据通信的一种标准格式,用于将非ASCII字符转换为可以在URL中安全传输的形式。GBK编码是中国大陆广泛使用的汉字编码标准,它包含了GB...
1. 文件转换:能够批量转换文件中的编码,如将GBK编码的文本文件转换为UTF-8编码,或者反之。 2. 粘贴板转换:用户可以复制含有特定编码的文字,然后通过工具将其转换为另一种编码,方便在不同编码环境下复制粘贴...
同样,从Unicode编码的资源中提取汉字,也可能需要将其转换为特定的GBK或UTF-8编码以便于特定系统的处理。 转换过程中,工具会根据输入的编码格式,解析每个字节流并按照目标编码规则重新组合成新的字符序列。这个...
它基于ASCII编码,由两个字节组成,包含了大约13,000个字符,主要包括常用汉字、标点符号和一些特殊字符。Big5编码的前128个字节与ASCII兼容,其余部分则用于存储中文字符。 接下来是GBK编码,它是GB2312编码的扩展...
将中文字符转换为十六进制编码的过程,实质上是将字符的二进制表示转化为更容易阅读和理解的十六进制形式。在Windows系统中,可以利用命令行工具`native2ascii`来实现这个转换。以下是具体的步骤: 1. **创建TXT...
注意,此步骤可能不完全准确,因为某些文件可能本身就是ASCII编码,没有明确的BOM(字节顺序标记)。 3. **转换编码**:对于检测到GBK编码的文件,使用`java.nio.file.Files`类的`readAllBytes`和`write`方法,配合...
要解决这个问题,我们需要将GBK编码的字符串转换为UTF-8,然后进行URI编码。通常,这个过程涉及到两个步骤:首先,使用`decodeURIComponent`函数解码已编码的URI;其次,使用`TextEncoder`或第三方库(如iconv-lite...
在中文环境下,我们常遇到的两种编码格式是UTF-8和GBK。这两种编码都是为了能够正确地存储和显示中文字符,但它们之间存在差异,有时需要进行相互转换。 UTF-8(Unicode Transformation Format - 8 bit)是一种变长...
例如,从GBK转到UTF-8,只需将GBK的宽字符转换为对应的UTF-8字节序列。 4. **编码**:将Unicode字符数组编码为目标编码。对于GBK,同样需要借助外部库或API;对于UTF-8,你可以手动构建字节序列,遵循UTF-8的规则。...
ASCII主要服务于英语国家,而GBK和GB2312是中国大陆常用的简体中文编码,BIG5则常用于繁体中文。UTF-8是一种国际化的编码标准,能容纳世界上大部分语言的字符。 批量字符编码转换工具.exe可能是一款能够一次性处理...
本文将详细介绍UTF-8和GBK编码,以及如何在.NET环境中进行这两种编码文件的互相转换。 首先,UTF-8是一种基于Unicode的字符编码方案,它能表示Unicode字符集中所有的字符。UTF-8的特点是其编码效率高,对于英文字符...
在实际工作或学习中,你可以使用提供的"ASCII码与汉字编码对照表"文件来查找特定字符的编码,或者反过来,将编码转换为对应的字符。这对于编码和解码过程的理解,以及调试相关程序都是非常有帮助的。总之,掌握ASCII...
这篇内容将深入讲解UTF-8与GBK编码,以及如何进行编码转换。 UTF-8(Unicode Transformation Format - 8 bit)是一种基于Unicode字符集的变长编码方式。它广泛应用于互联网,因为其具有良好的跨平台兼容性。UTF-8的...
反之,如果需要发送包含中文字符的数据,应确保先将GBK编码的字符串转换为UTF-8,以确保网络传输的正确性。 为了确保编码转换的正确性,你需要理解每种编码的内部结构和规则,例如GBK编码的两个字节如何对应到...