【问题标题】:Keep consitant encoding between windows, unix and mssql 2014在 windows、unix 和 mssql 2014 之间保持一致的编码
【发布时间】:2017-04-19 16:06:25
【问题描述】:

我在 unix 机器上有一个节点应用程序,它读取在 windows 机器上创建的 utf-8 js 文件,如下所示: { "b_name": "שם של משהו", } 并使用文件中的信息更新具有相应字段的 mssql 表,定义为: [b_name] [nvarchar](50) 在此过程中,b_name 的值变得乱七八糟并在数据库中保存为垃圾。 当我在文件中将其编码为 utf-8 时,即 { "b_name": '×©× ×©× ×ש××', //utf8.encode('שם של משהו') } 它在数据库中正确保存,但必须在目的地解码,我无法控制那部分,所以他们将其视为“ש×ש××ש××”

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

【问题讨论】:

  • “沿途某处”——那究竟是什么?你如何与 MSSQL 对话?如果您使用字符串构建查询,它们是否以 N 为前缀?

标签: sql-server encoding utf-8


【解决方案1】:

显然问题是这样的: (对 mssql@3.3.0 更正)

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 2019-08-21
    • 2011-01-07
    • 2021-12-18
    • 2012-03-21
    • 1970-01-01
    相关资源
    最近更新 更多