2017-04-19 26 views
0

我有一個UNIX機器上的一個節點的應用程序,讀取窗口機器上創建一個UTF-8的js文件看起來像這樣之間consitant編碼: { "b_name": "שם של משהו", } 和使用在文件中更新mssql表與相應的字段,定義爲: [b_name] [nvarchar](50) 某處一路上,b_name的值變成亂碼,並保存爲數據庫中的垃圾。 當我在文件中編碼爲UTF-8時,即 { "b_name": '×©× ×©× ×ש××', //utf8.encode('שם של משהו') } 它被正確保存在數據庫中,但它必須在目的地解碼,並且我無法控制該部分,所以他們將其視爲「ש××××」保持Windows,UNIX和MSSQL 2014

任何想法如何使它在整個過程中保持一致?

+0

「的地方一路走來,」 - 那究竟是什麼?你如何與MSSQL交談?如果您使用字符串構建查詢,是否以N爲前綴? – Lucero

回答

0

顯然,這個問題是這樣的: (修正[email protected]

我們設定的js字符串類型爲varchar代替的NVarChar:

//bad 
request.input('string_parameter', sql.VarChar, value); 
//Good 
request.input('string_parameter', sql.NVarChar, value);