Android JSON解析英镑符号即将出现?

时间:2012-06-21 07:57:51

标签: java android

我有一个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");

然而,它们都没有打印出英镑符号,它或者是黑色问号或其他奇怪的符号。有谁知道我做错了什么,以及如何让这个符号正确打印出来?

1 个答案:

答案 0 :(得分:0)

同时使用try catch byte []b = sJsonVariables.getBytes("UTF8");和String String s3 = new String(b, "Cp1252");