【发布时间】:2019-09-20 00:30:59
【问题描述】:
我正在做一个 nodejs 项目。 DB2 中有公司名称“ABC AEROLÍNEAS SA DE CV”。在使用 ibm_db@2.6.1 获取名称时,它在我的 nodejs 中变成了“ABC AEROL�NEAS SA DE CV”。
我尝试通过将 python 与 ibm_db 3.0.1 一起使用来验证它并得到“ABC AEROL\xcdNEAS SA DE CV”。我认为 '\xcd' 应该是正确的,因为它在 python 控制台中显示 'ABC AEROLÍNEAS SA DE CV'。此外,我通过 JDBC 对其进行了测试,并得到了正确的名称。
不知道为什么nodejs的ibm_db不能取到正确的名字。有人可以帮忙检查一下吗?谢谢。
数据库 DB
NodeJS NodeJS
Python Python
【问题讨论】:
-
你的 Node.js 应用的数据库代码页和代码页是什么?
-
您正在处理非 ASCII 字符串,因此您的代码需要更新以处理字符集编码,即从外部编码 (DB) 转换为内部编码 (code) 到外部编码 (显示)。
-
@StefanBecker 数据库连接字符串没有字符集属性。即使我添加了 charset=UTF8,它也不起作用。我也尝试过转换公司名称的编码,但没有得到正确的结果。
-
@StefanBecker 奇怪的是,ibm_db 正在努力在 Mac 中获取正确的名称,而不是在 Win10 中。是DB驱动的bug吗?
标签: node.js character-encoding db2 loopback dashdb