Sql server 在windows、unix和mssql 2014之间保持一致的编码

Sql server 在windows、unix和mssql 2014之间保持一致的编码,sql-server,encoding,utf-8,Sql Server,Encoding,Utf 8,我在unix机器上有一个节点应用程序,它读取在windows机器上创建的utf-8 js文件,如下所示: { “bםu name”:“bםש㪚שהו”, } 并使用文件中的信息更新带有相应字段的mssql表格,该字段定义为: [b_name][nvarchar](50) 在这个过程中的某个地方,b_名称的值会变得乱七八糟,并作为垃圾保存在数据库中。 当我在文件中将其编码为utf-8时,即 { “b–u name”:“××××××××××”,//utf8.编码('u 1513;ש㪚שהו

我在unix机器上有一个节点应用程序,它读取在windows机器上创建的utf-8 js文件,如下所示:

{
“bםu name”:“bםש㪚שהו”,
}
并使用文件中的信息更新带有相应字段的mssql表格,该字段定义为:

[b_name][nvarchar](50)
在这个过程中的某个地方,b_名称的值会变得乱七八糟,并作为垃圾保存在数据库中。 当我在文件中将其编码为utf-8时,即

{
“b–u name”:“××××××××××”,//utf8.编码('u 1513;ש㪚שהו')
}
它被正确地保存在数据库中,但是它必须在目的地被解码,而我对那个部分没有控制权,所以他们将它视为“×××××××”


你知道如何在整个过程中保持一致吗

显然问题在于: (适用于mssql@3.3.0)

我们将js字符串的类型设置为VarChar而不是NVarChar:

//bad
request.input('string_parameter', sql.VarChar, value);
//Good
request.input('string_parameter', sql.NVarChar, value);
“一路上的某个地方”-那条路到底是什么?你如何与MSSQL交谈?如果使用字符串生成查询,它们是否有N前缀?