UTF-8 Проблема с кодировкой объекта HTTP Post в AWS Elastic Beanstalk - PullRequest
0 голосов
/ 30 марта 2019

Я установил новый сервер в AWS EBS с linux и настроил сервер на UTF-8, потому что я использую некоторый текст на иврите.

Код работает в Windows, но когда я перешел на Linux, он перестал работать. Код отправляет сообщение HTTP на другой сервер, получает с него объект JSON и начинает анализировать. Весь текст на иврите выглядит примерно так: × § × ‘× • × ¦ ×

  1. Я попытался добавить в конфигурацию программного обеспечения AWS: JAVA_TOOL_OPTIONS -Dfile.encoding = UTF8
  2. Я попытался добавить JAVA_OPTIONS = "- Dfile.encoding = UTF-8" в файл tomcat8.conf. (также попробовал с JAVA_OPTS).
  3. Я пытался добавить параметры catalina также с кодировкой.

    HttpPost request = new HttpPost (URL); // Создать JSON и установить токен API JSONObject SendJson = new JSONObject (); SendJson.put (поле, ключ); StringEntity params = new StringEntity (SendJson.toString ()); request.setEntity (PARAMS); // устанавливаем тип заголовка request.addHeader ("content-type", "application / json; charset = UTF-8"); request.addHeader («Accept-Encoding», «UTF-8»); // Выполнить и ждать ответа HttpResponse httpResponse = httpClient.execute (запрос);

        HttpEntity resEntity =   httpResponse.getEntity();
        // cast InputStream to String for JSON conversion
        BufferedReader reader = new BufferedReader(new InputStreamReader( resEntity.getContent()));
        //String strInputStream = EntityUtils.toString(resEntity,"UTF-8");
        String strInputStream = reader.readLine();
    
        //debug
        System.out.println("David Encoding problem");
        System.out.println(Charset.defaultCharset().name());
        System.out.println(strInputStream);
        JSONObject answerObj = new JSONObject(strInputStream);
    

Charset.defaultCharset (). Name () - вывод UTF-8

Я получаю JSON без текста на иврите: /

часть JSON, например: {"item_group_id": 1, "item_group_name": "× § ב × • × ¦ × "×", "picture_link": ""},

Спасибо, David

1 Ответ

0 голосов
/ 31 марта 2019

Я исправил это.Я изменил локаль на he_IL и he_IL.UTF8, затем перезапустил сервер, и он заработал.

Спасибо!

...