2010-07-01 40 views
0

嗨,将多字节字符转换为十六进制

我有一个传入的文件将通过一个BizTalk映射器。我需要确定文件的某个字段中是否有3字节的中文字符(文件是xml)。我已经知道如何找到3字节的字符。但是,如何将其转换为十六进制值? 十六进制值是我将发送到输出模式然后发送到DB2服务器。

谢谢。

回答

0

我假设你正在处理UTF-8。真的吗?

如果是这样,你想要的东西,如:

((C0 & 0xFFFF)时< < 12)| ((c1 & 0xFFFFFF)< < 6)| (c2 & 0xFFFFFF)

+0

非常感谢Scott。 我有一个代码将char数组的字符长度转换为DBCS长度的代码。你能帮我确定数据来自哪里吗? (c [length] == 32) if(c [length] == 32) c [length] =(char)12288; (c [length] <127) } c [length] =(char)(c [i] +65248); } 如何在将MBCS转换为DBCS时使用相同的方法? – lightyearsaway 2010-07-01 06:51:14

+0

我给出的公式基于UTF-8,它是一种特殊类型的多字节字符编码。这是你的角色所在的编码方案吗?一种检查方法是查看多字节字符中的3个字符。第一个的二进制表示应该以1110开头,下一个2的二进制表示应该以10开头。如果不是这样,那么你没有UTF-8,并且我显示的代码将不起作用。如果这是真的,那么我向您展示的代码将从3个字符中“移除”Unicode的“控制位”(1110,10,10),并将剩余的位组合成一个整数。 – 2010-07-01 13:13:20

相关问题