Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:解析JSON中的特殊字符(ä;、ö;、ü;)_Android_Json - Fatal编程技术网

Android:解析JSON中的特殊字符(ä;、ö;、ü;)

Android:解析JSON中的特殊字符(ä;、ö;、ü;),android,json,Android,Json,如何解析JSON中的特殊字符?因为我正在制作一个德语应用程序,它包含了很多特殊的字符,比如ä,ö,ü,ß。如何通过解析JSON来显示这些字符?现在它们只显示为“?” 以下是我的JSON解析方法: void examineJSONFile() { try { String y = ""; InputStream is = this.getResources().openRawResource

如何解析JSON中的特殊字符?因为我正在制作一个德语应用程序,它包含了很多特殊的字符,比如ä,ö,ü,ß。如何通过解析JSON来显示这些字符?现在它们只显示为“?”

以下是我的JSON解析方法:

void examineJSONFile()
    {
        try
        {
            String y = "";
            InputStream is = this.getResources().openRawResource(R.raw.json);
            Writer writer = new StringWriter();
            char[] buffer = new char[1024];

            try {
              BufferedReader reader = new BufferedReader(
                new InputStreamReader(is, "UTF-8")
              );
              int n;
              while ((n = reader.read(buffer)) != -1) {
                writer.write(buffer, 0, n);
              }
            } finally {
              is.close();
            }

            String jsontext = writer.toString();

            JSONArray entries = new JSONArray(jsontext);
            
            int j;
            for (j=0;j<entries.length();j++)
            {
                JSONObject post = entries.getJSONObject(j);
                y += post.getString("description") + "\n";
            }
            txt_beschreibung.setText(y);
        }
        catch (Exception je)
        {
            txt_beschreibung.setText("Error w/file: " + je.getMessage());
        }
        
    }
void-examineJSONFile()
{
尝试
{
字符串y=“”;
InputStream=this.getResources().openRawResource(R.raw.json);
Writer-Writer=新的StringWriter();
char[]buffer=新字符[1024];
试一试{
BufferedReader reader=新的BufferedReader(
新的InputStreamReader(即“UTF-8”)
);
int n;
while((n=读卡器读取(缓冲区))!=-1){
writer.write(缓冲区,0,n);
}
}最后{
is.close();
}
字符串jsontext=writer.toString();
JSONArray条目=新的JSONArray(jsontext);
int j;

对于(j=0;j此类字符必须至少采用UTF-8编码。请检查您的文件是否保存在此输入代码中。

首先检查xml中的编码类型,UTF-8或ISO-8859-1

若编码类型是ISO-8859-1,那个么在程序中只需将此代码更改为“读取特殊字符”

SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();

XMLReader xmlReader =  parser.getXMLReader();
xmlReader.setContentHandler(this);
InputSource is = new InputSource(xmlUrl.openStream());
is.setEncoding("ISO-8859-1");
xmlReader.parse(is);

你确定你的JSON是用UTF-8编码的吗?如果不是,你需要更改
InputStreamReader
构造函数的参数。谢谢提醒,我似乎是用ANSI编码保存了文件。所以我把它改成了UTF-8,现在显示了特殊字符,但我得到了这个错误,也许你可以帮我。这里的thx类似问题。。。仍然没有回答。