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