最近要做一下接口程序,客户通过http传过来的内容是转化成了GBK内码的字符串。
如:"B2E2CAD4",是汉字“测试”的GBK内码表示,需要在java端将其还原为原来的内容。
google后发现网上很多方法都是误人子弟,张冠李戴,于是只好DIY。不敢独享,公布如下:
/**
* Created on 2010-04-16
* @author yangguo
* @param isn GBK 内码字符串
* @return
*/
private static String gbk2Unicode(String isn) {
byte[] bytes = new byte[isn.length()/2];
for(int i = 0,j = 0 ;i < isn.length() ; i += 2,j++){
bytes[j] = Integer.decode("0X" + isn.substring(i, i+2)).byteValue();
}
try {
return new String(bytes,"gbk");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return isn;
}
}
附件附送一个生成GBK内码的方法和测试代码。
分享到:
相关推荐
《汉字与GBK内码互转工具详解及其实现原理》 在信息技术领域,字符编码是数据处理中的基础,尤其在中文环境下,理解汉字与内码的转换至关重要。GBK内码,全称为“国标扩展码”(GBK,GuanBiao KaiXin),是中国大陆...
理解字符串与机内码的转换对于编程和数据处理至关重要。 ASCII码(美国标准信息交换代码)是最基础的字符编码方式,它定义了128个不同的字符,包括英文大小写字母、数字、标点符号和一些控制字符。每个ASCII字符都...
但如果需要,可以使用`QString::toUtf8()`将Unicode字符串转换为UTF-8字节序列。 5. **16进制数值转换**:在串口通信中,可能需要将接收到的16进制数值转换为字符或字符串。例如,函数`QByteArray_to_HexQString`将...
在Delphi中,处理字符串通常涉及到`String`类型,它实际上是Unicode字符串,使用UTF-16编码。 该程序包含以下主要组成部分: 1. **用户界面**:一个窗体(Form)是用户与应用程序交互的界面,用户可以在此输入文本...
例如,`StrConv("Unicode字符串", vbFromUnicode)`会将Unicode字符串转换为系统的默认编码。 `Win32 API Programming with Visual Basic.txt`这个文件可能包含更深入的关于如何使用Win32 API在VB中进行字符串处理的...
UTF-8(Unicode Transformation Format - 8 bit)是一种变长的Unicode编码方式,它将Unicode字符集中的每个字符用1到4个字节来表示。UTF-8的最大优点是与ASCII兼容,这意味着英文和其他使用ASCII编码的字符在UTF-8下...
描述进一步说明了该函数的作用,即把字符串转换为UTF8格式,并且以十六进制的内码形式表示。 在IT领域,字符编码是非常关键的一部分,特别是在多语言环境下,不同编码标准的互转经常需要。UTF8是一种广泛使用的...
3. **16进制表示**:将得到的字节数组转换为16进制字符串,VB.NET可以使用循环遍历数组并应用`ToString("X2")`方法来实现,这会将每个字节转换为其16进制表示。 4. **字节分隔**:为了方便复制到程序中,可以允许...
- 接着,如果要转换为繁体,需要使用特定的转换库或者API,如Microsoft的`Uniscribe`库,将Unicode字符串转换为Big5编码的繁体中文。 - 最后,使用`WideCharToMultiByte`将转换后的Unicode字符串转换为目标编码...
- 对于不支持的Unicode字符(GBK编码范围外),可以选择忽略、替换为问号或者其他处理方式。 - 考虑内存限制,可能需要优化查表法,如使用分块查表或动态加载字库。 - 串口通信和TF卡、LCD显示的字符编码一致性问题...
`String.prototype.UrlEncode`函数则是用于将字符串转换为UTF-8编码的URL参数,主要利用了JavaScript的内置函数`escape()`,然后对结果进行进一步处理,特别是处理Unicode字符。这个函数的工作原理如下: 1. 先使用`...
GBK,全称为“汉字内码扩展规范”(Guo Biao Kai Zhan),是在GB2312基础上的扩展,兼容了大部分GB2312字符,同时增加了许多其他汉字、符号和少数民族文字,总共包含约21000个汉字。GBK是单字节编码,但每个字节都带...
在编程时,我们通常需要将字符串的每个字符转换为其16进制内码,然后以字符串形式存储或传输。有了这个工具,开发者可以快速获取准确的内码值,避免手动计算带来的错误风险。同时,对于那些需要处理大量汉字或者频繁...
4. **Char 和 Byte 类型**:在C#中,Char类型表示一个Unicode字符,而Byte类型表示一个字节。在处理汉字与机内码时,这两种类型是基本的数据单元。 现在,我们来看一个简单的C#代码示例,展示如何进行汉字与机内码...
- **实现思路**:首先将BIG5字符串转换为Unicode字符串,再从Unicode转换为GB编码。 - 使用`MultiByteToWideChar`将BIG5字符串转换为Unicode字符串。 - 使用`WideCharToMultiByte`将Unicode字符串转换为GB编码字符...
转换过程包括读取UTF-8编码的字符串,然后根据GBK编码规则重新排列字节,以生成GBK编码的字符串。这个过程中需要注意字节顺序和多字节字符的处理,以确保转换的准确性。 LabVIEW编程环境中,可以创建自定义VI(虚拟...
在VB中编写汉字内码查询软件,开发者通常会利用VB的字符串处理功能和系统API调用来实现汉字与内码之间的转换。 汉字内码主要分为两种:区位码和机内码。区位码是汉字的逻辑位置编码,由两个字节组成,每个字节在01H...
以下是一个简单的示例,展示了如何从`ComboBox`获取选中项的GBK内码: ```csharp ComboBox myComboBox = new ComboBox(); // 假设myComboBox已填充数据并有选中项 string selectedText = myComboBox.SelectedItem....
`StrConv`函数用于字符串编码的转换,其语法如下: ```vb StrConv(string, conversion[, LCID]) ``` - **string**:待转换的字符串或字节数组。 - **conversion**:指定转换类型。例如: - `vbFromUnicode`:从...