Китайские иероглифы неправильно отображаются на веб-страницах wso2am-analytics-2.6.0 - PullRequest
0 голосов
/ 24 марта 2020

Я установил API Manager и APIM Analytics на CentOS 7.6, версия 2.6.0. Я считаю, что китайские символы не отображаются должным образом на страницах выпадающего меню Анализ.

enter image description here

Но китайские иероглифы могут правильно отображаться на других страницах

enter image description here

Итак, эта проблема сфокусирована на «APIM Analytics». Я проверил данные в базе данных H2, обнаружил, что данные H2 верны, но возвращенные данные Json неверны.

enter image description here

и

enter image description here

Я также проверил файл оболочки /usr/lib64/wso2/wso2am/wso2am-analytics-2.6.0/wso2/worker/bin/carbon.sh, обнаружил, что -Dfile.encoding=UTF8 настроен.

enter image description here

Я сомневаюсь, что данные не кодируются в процессе передачи. Кто-нибудь сталкивался с этой проблемой?

--- Дополнительный контент (2020/3/25) ---

Я только что проверил deploy.yaml, который находится в /usr/lib64/wso2/wso2am/wso2am-analytics-2.6.0/conf/worker. Я не обнаружил ни одного элемента конфигурации набора символов.

enter image description here

Я также рассмотрел use.jag, который находится на /usr/lib64/wso2/wso2am/2.6.0/repository/deployment/server/jaggeryapps/store/modules/statistics. Как видите, нет лога программы c запроса данных. Думаю, мне придется прочитать исходные коды wso2am-analytics-2.6.0. Я не думаю, что это эффективный способ.

enter image description here

--- Дополнительный контент (2020/3/26) ---

Я обнаружил, что некоторые странные символы добавляются к возвращенным Json данным (показано на скриншоте ниже). Возвращенные данные Json выглядят следующим образом: å\u0085¨ç\u0090\u0083é£\u008eå\u0090\u0091æ\u009f¥è¯¢ (admin), обычные Json данные должны выглядеть следующим образом: \u6f22\u5b57.

enter image description here

1 Ответ

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

Я нахожу подозрительную точку в исходном коде, подробности следующие:

Репозиторий Github - "wso2 / carbon-apimgt", Java файл - "org.wso2.carbon.apimgt.impl.utils.APIUtil", метод "executeQueryOnStreamProcessor».

Код клавиши «String responseStr = EntityUtils.toString(entity);». Согласно документу HttpClient, метод EntityUtils.toString() будет использовать набор символов по умолчанию, который является ISO-8859-1, если для него не указан другой набор символов (например: UTF-8).

Итак, дело в том, что ISO-8859-1 не может правильно обрабатывать информацию на китайском языке.

Я надеюсь, что разработчики WSO2 могут заметить, что как можно скорее.

...