ポンド記号を含む 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");
ただし、ポンド記号を出力するものはなく、黒い疑問符またはその他の奇妙な記号として出力されます。私が間違っていることと、このシンボルを正しく印刷する方法を知っている人はいますか?