我有一个字符串,由windows-1256解码,如此
A0C8E5CFC7CF2DC7DDDEE5ED
我想在android中将其编码为UTF-8。 我试着像这样编码
String input = "A0C8E5CFC7CF2DC7DDDEE5ED";
try {
String message = new String(input.getBytes(), "windows-1256");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
但我没有看到预期的表达方式。 为此,我在C#中编写了一些代码,就像这样
int index = 0;
while (response[index] != 0x00)
result = result + Encoding.GetEncoding("windows-1256").GetString(response, index++, 1);
它工作正常。
有没有人知道如何解决它?
提前致谢
答案 0 :(得分:0)
首先将十六进制字符串转换为字节数组。请参阅this帖子。
然后,使用
将字节数组byte []转换为UTF-8String str = new String(byte[], "windows-1256");
UTF-8是原生的android编码。希望它有所帮助。