1

我有一个 JSON 文件,其中包含一个磅符号。此 json 是从临时存储在手机上的文件中提取的。它将来自服务器,但暂时我只是将它存储在手机上。我将 JSON 文件转换为输入流并使用一种方法将其转换为这样的字符串

Resources res = getResources();
String sJsonVariables = iStream_to_String(res
                .openRawResource(R.raw.widgvariables));

iStream_to_String 方法是这样的

public String iStream_to_String(InputStream is) {
        BufferedReader rd = new BufferedReader(new InputStreamReader(is), 4096);
        String line;
        StringBuilder sb = new StringBuilder();
        try {
            while ((line = rd.readLine()) != null) {
                sb.append(line);
            }
            rd.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
        String contentOfMyInputStream = sb.toString();
        return contentOfMyInputStream;
    }

我已经尝试使用 Log.v 打印出 json 来测试它是否可以打印出来。除了磅符号外,一切都打印得很好。我已经尝试了几种不同的编码方式

byte []b = sJsonVariables.getBytes();

        String s1 = new String(b, "UTF-8");
        String s2 = new String(b, "ASCII");
        String s3 = new String(b, "Cp1252");
        String s4 = new String(b, "ISO8859_1");

但是,它们都不会打印出英镑符号,它要么是黑色问号,要么是其他一些奇怪的符号。有谁知道我做错了什么,以及如何让这个符号正确打印出来?

4

1 回答 1

0

将其与 try catchbyte []b = sJsonVariables.getBytes("UTF8");和 String 一起使用String s3 = new String(b, "Cp1252");

于 2012-06-21T08:02:18.620 回答