簡體   English   中英

Windows上的Node.JS + ibm_db + DB2 LUW 9.7的代碼頁問題(例如,德語變音符號)

[英]Codepage problem (e.g. german umlauts) with Node.JS + ibm_db + DB2 LUW 9.7 on Windows

我們可以使用npm包ibm_db從Widows客戶機上的Node.JS成功訪問IBM DB2 LUW Server 9.7。

但是,ibm_db SQL查詢的結果集中的字符編碼確實存在問題。 當涉及到德國變音符號äÄöÖüÜß時,JavaScripte結果集中的數據已經變形。

如果我們在命令行(db2cmd.exe)上執行相同的SQL查詢,那么包括變音符號的一切都很好。

如果我們使用JavaScript檢查SQL結果集中的變音符號的編碼為整數(string.charCodeAt(index)),我們會發現變音符號格式錯誤。 所有不同的變音符號都已轉換為一個且相同的dec:65533 / hex:FFFD / char:'。'

我們還使用以下命令檢查了數據庫中的SQL列字符集:

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

得到結果1252。

其他徒勞的嘗試:

  • 使用SL CAST(.... CCSID ####)
  • 在db URL中設置屬性(要使用哪個連接屬性?很難找到文檔)
  • 打開連接ibm_db.openSync(db_url,db_options)時,將db_options ['codeSet']設置為1252,windows-1252,UTF-8、1208 ...;

嗯....我在這里塞了一個垃圾。 怎么了?

感謝任何幫助。

環境:

  • Windows 10
  • node.js 10.15.1
  • ibm_db 2.5.0
  • npm 6.4.1
  • 適用於LUW 9.7的IBM DB2服務器

您是否測試過設置Windows系統環境變量DB2CODEPAGE = 1208? (設置完之后,您可能需要重新啟動,以允許您的堆棧拿起它)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM