Китайские иероглифы превращаются в ненужные символы - Progress4gL - Open edge - PullRequest
0 голосов
/ 25 февраля 2019

Язык программы - откройте Edge, progress4GL

В поисках вашей помощи при чтении китайских символов из файла XML они преобразуются в ненужные символы.

Файл XML имеет формат UTF-8закодирован.

У сеанса, который мы загружаем, XML имеет кодовую страницу = «ISO8859-1»

Уже пробовали использовать переменную MEMPTR, но безуспешно, кто-нибудь может посоветовать, что можно сделать, чтобы решить эту проблему?

INPUT FROM value (cFileName) BINARY NO-MAP no-convert.
  IMPORT unformatted mPointer.
INPUT CLOSE.    

SET-SIZE(mPointer) = mPointerSize.     

CREATE X-DOCUMENT hXML .
hXML:ENCODING = "UTF-8".

CREATE X-NODEREF  hRoot.

hXML:LOAD("memptr",mPointer,FALSE)  NO-ERROR.

1 Ответ

0 голосов
/ 25 февраля 2019

iso8859-1 не может отображать китайские иероглифы.Вам необходимо сопоставить кодовую страницу сеанса с данными, которые вы читаете.Очевидным решением будет начать сеанс с соответствующими параметрами -cp *, установленными в utf8. ОДНАКО - крайне важно убедиться, что это совместимо с тем, что ваша база данных использует для кодовых страниц (-cpinternal), если вы используете несовместимые кодовые страницы для хранения данных, которые вы собираетесь испортить БД,Мусор, мусор, выход ...

Следующая статья является разумным началом:

https://knowledgebase.progress.com/articles/Article/P762

Итак, первая вещь, которая вам нужнадля этого нужно выяснить, с какой кодовой страницей работает ваша база данных.

Вы можете надежно обнаружить это независимо от платформы, взглянув на dbname.lg и выполнив поиск "-cpinternal" или "(4264)"..

Но будьте очень осторожны - как я уже упоминал выше, если вы совершаете несовместимое преобразование, вы рискуете повредить вашу базу данных.Если БД не была создана с поддержкой utf8 (или другой кодовой страницы, совместимой с китайскими символами), вы должны сначала решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...