我想将十六进制字节转换为Unicode。我在Windows-1250中有十六进制0x80
,我想转换为'\u0402'
。没有开关的标准方法是否可行。
答案 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示例