如何在Java中将十六进制字节转换为Unicode

时间:2011-06-01 06:57:40

标签: java unicode hex

我想将十六进制字节转换为Unicode。我在Windows-1250中有十六进制0x80,我想转换为'\u0402'。没有开关的标准方法是否可行。

2 个答案:

答案 0 :(得分:1)

\u0402名为CYRILLIC CAPITAL LETTER DJE。我想,你在中有一些文字是一个不同的 CP1251 字符编码,这是一种0x80映射到同一个西里尔字母的编码。

尝试识别当前文本的编码(您的字节)并使用

String s = new String(myBytes, "Cp1251");

将字节读入字符串。之后,您可以使用正确的编码将字符串再次转换为字节。

进一步阅读

答案 1 :(得分:0)

让我们清楚一点:CP1250中有一些字节,你知道编码。您希望将它们发送到字符串中的某个系统,其中包含以\uXXXX形式转义的字符或UTF-16中的字节转义。

首先,遵循Andreas_D给出的建议:new String(bytes, "CP1250")将您的字节转换为java字符串。

现在要在utf-16中使用一个字节数组,使用new String(bytes, "CP1250").getBytes("UTF-16);

要将此字符串作为带有unicode字符转义的ASCII字符串,请使用this示例