在Windows上使用Node.JS + ibm_db + DB2 LUW 9.7的代码页问题(例如德语变音符号)

问题描述 投票:0回答:1

我们可以使用npm包ibm_db从Widows客户端上的Node.JS成功访问IBM DB2 LUW Server 9.7。

但是我们确实在ibm_db SQL查询的结果集中遇到chacarter编码问题。 JavaScripte结果集中的数据在德国变形金刚äÄöÖüÜß时已经被误认。

如果我们在命令行(db2cmd.exe)执行相同的SQL查询,一切都很好,包括变音符号。

如果我们用JavaScript检查SQL结果集中的变音符号的编码为interger(string.charCodeAt(index)),我们发现变音符号已经被误解了。所有不同的变音符号都被转换为一个相同的dec:65533 / hex:FFFD / char:'�'。

我们还检查了数据库中的SQL列charset:

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

给出结果1252。

其他徒劳的尝试:

  • 使用SL CAST(.... CCSID ####)
  • 在db 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
  • 海拔6.4.1
  • IBM DB2 Server for LUW 9.7
node.js db2 codepages
1个回答
1
投票

您是否测试过设置Windows系统环境变量DB2CODEPAGE = 1208? (您可能需要在设置后重新启动,以允许堆栈拾取它)

© www.soinside.com 2019 - 2024. All rights reserved.