在Android中解码windows 1256到utf-8

时间:2017-04-18 17:41:30

标签: android encoding utf-8

我有一个字符串,由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);

它工作正常。

有没有人知道如何解决它?

提前致谢

1 个答案:

答案 0 :(得分:0)

首先将十六进制字符串转换为字节数组。请参阅this帖子。

然后,使用

将字节数组byte []转换为UTF-8
String str = new String(byte[], "windows-1256");

UTF-8是原生的android编码。希望它有所帮助。