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

trycatchとStringwithでこれも使用してbyte []b = sJsonVariables.getBytes("UTF8");くださいString s3 = new String(b, "Cp1252");

于 2012-06-21T08:02:18.620 に答える