Android: парсинг специальных символов (ä, ö, ü) в JSON - PullRequest
2 голосов
/ 04 апреля 2011

Может кто-нибудь помочь мне, как разобрать специальные символы в 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());
        }

    }

Спасибо.

Ответы [ 2 ]

4 голосов
/ 04 апреля 2011

Такие символы должны быть как минимум в кодировке UTF-8.Проверьте, сохранен ли ваш файл в этой кодировке.

3 голосов
/ 11 августа 2011

первая проверка типа кодировки в 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...