gpt4 book ai didi

android - 在android中解码shift-jis

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:23 24 4
gpt4 key购买 nike

如何在 android 中解码 shift-JIS(将其转换为字符串)?
我尝试过类似的方法,但它不起作用

编码:

String test = "some text";
byte[] bytes = test.getBytes("Shift_JIS");

解码:

String decoded = new String(bytes, "Shift_JIS");

我的设备中保存了一个日语联系人,我正在备份/恢复应用程序,当我恢复联系人时它显示未定义的字符。
所以我认为它在数据库中保存为 Shift-JIS,我想解码它

最佳答案

据我在我的 Android 设备(运行 4.1.1 的摩托罗拉 Razr)上所见,它确实正确编码/解码 Shift-JIS。以下测试代码

    try {
String test = "インターネットをもっと快適に";
byte[] bytes = test.getBytes("Shift_JIS");
byte[] inShiftJis = {
-125, 67, -125, -109, -125, 94, -127, 91, -125, 108, -125, 98, -125, 103, -126,
-16, -126, -32, -126, -63, -126, -58, -119, -11, -109, 75, -126, -55
};

String decoded = new String(bytes, "Shift_JIS");
String fromShiftJis = new String(inShiftJis, "Shift_JIS");
Log.d(LOG_TAG, decoded);
Log.d(LOG_TAG, fromShiftJis);
} catch (UnsupportedEncodingException e) {

}

输出

03-06 10:09:25.733: D/MainActivity(3490): インターネットをもっと快適に
03-06 10:09:25.733: D/MainActivity(3490): インターネットをもっと快適に

所以我们可以看到编码和解码是有效的。如果您创建一个包含相同字节集的纯文本文件,您可以确认这是 Shift-JIS 编码,例如在浏览器中查看它,您可以选择字符编码。

因此,如果您看到未定义的字符,则表明它不是 Shift-JIS 编码(可能是压缩数据?),或者您提取的数据不正确。如果您可以将数据保存为文本文件,可能最快的方法就是尝试在浏览器中打开它,然后检查各种字符编码,直到找到正确的编码。

关于android - 在android中解码shift-jis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13723917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com