Проблема с кодовой страницей (например, немецкие умлауты) с Node.JS + ibm_db + DB2 LUW 9.7 в Windows - PullRequest
0 голосов
/ 01 марта 2019

Мы можем успешно получить доступ к IBM DB2 LUW Server 9.7 из Node.JS на клиенте Widows, используя пакет npm ibm_db.

Но у нас есть проблема с кодировкой символов в результирующем наборе SQL-запроса ibm_db,Данные в наборе результатов JavaScripte уже искажены, когда речь заходит об умлаутах Германии.

Если мы выполняем одинаковый SQL-запрос в командной строке (db2cmd.exe), все в порядке, включая умлауты.

Если мы проверим с помощью JavaScript кодировку умляутов в наборе результатов SQL как interger (string.charCodeAt (index)), мы обнаружим, что умлауты уже искажены.Все различные умлауты были преобразованы в один и тот же dec: 65533 / hex: FFFD / char: '�'.

Мы также проверили кодировку столбцов SQL в базе данных с помощью:

select name,tbcreator,codepage from sysibm.syscolumns where ...

выдаст результат 1252.

Другие тщетные попытки:

  • Использование SL CAST (.... CCSID ####)
  • установка свойства в дБURL (какое свойство соединения использовать? Документация трудно найти)
  • установка db_options ['codeSet'] на 1252, windows-1252, UTF-8, 1208 ... при открытии соединения ibm_db.openSync(db_url, db_options);

Хммммм ... здесь я застрял.Что не так?

Спасибо за любую помощь.

Среда:

  • Windows 10
  • node.js 10.15.1
  • ibm_db 2.5.0
  • npm 6.4.1
  • IBM DB2 Server для LUW 9.7

1 Ответ

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

Тестировали ли вы установку системной переменной среды Windows DB2CODEPAGE = 1208?(вам может потребоваться перезагрузить компьютер после установки, чтобы ваш стек мог его поднять)

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