Я установил новый сервер в AWS EBS с linux и настроил сервер на UTF-8, потому что я использую некоторый текст на иврите.
Код работает в Windows, но когда я перешел на Linux, он перестал работать.
Код отправляет сообщение HTTP на другой сервер, получает с него объект JSON и начинает анализировать. Весь текст на иврите выглядит примерно так: × § × ‘× • × ¦ ×
- Я попытался добавить в конфигурацию программного обеспечения AWS: JAVA_TOOL_OPTIONS -Dfile.encoding = UTF8
- Я попытался добавить JAVA_OPTIONS = "- Dfile.encoding = UTF-8" в файл tomcat8.conf. (также попробовал с JAVA_OPTS).
Я пытался добавить параметры 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