【问题标题】:Euro sign (€) in VARCHAR columnVARCHAR 列中的欧元符号 (€)
【发布时间】:2018-10-14 21:12:02
【问题描述】:

我的许多数据库列定义为 VARCHAR(255),现在想输入 unicode 字符(尤其是 € 符号)。 插入数据不显示 unicode 符号,但如果我更新我的插入语句以使用 NVARCHAR 参数,它就可以工作。但为什么?我没有将列定义从 VARCHAR 更改为 NVARCHAR。

为了支持这些符号,我应该将所有参数从 VARCHAR 更改为 NVARCHAR 还是应该将列定义更新为 NVARCHAR(255)?

【问题讨论】:

  • 这是因为符号是 unicode 并且 nvarchar 支持它而 varchar 不支持。这里的解决方案几乎是将列类型更改为 nvarchar 并对您将值传递到这些列中的所有参数执行相同的操作。
  • 你需要将类型改为nvarchar以支持sql-server中的unicode字符
  • 但是你们有什么解释为什么它在查询中使用 varchar 列和 nvarchar 参数?
  • @MK_ 这相当不精确。欧元符号也存在于 unicode 以外的字符集中(例如 ISO-8859-15、windows-1252)

标签: sql-server character-encoding


【解决方案1】:

使用NVARCHARchange your database character 集(导出,使用支持欧元符号的字符集重新安装,如WE8ISO8859P15AL32UTF8,然后导入)。

这是NVARCHAR:的示例

link

【讨论】:

    【解决方案2】:

    Varchar 数据类型不包含 Unicode 字符。您必须将 VARCHAR(255) 数据类型转换为 NVARCHAR(255) 才能保存 Unicode 字符。 还将列定义更新为 NVARCHAR(255)

    【讨论】:

    • 欧元符号也存在于 unicode 以外的字符集中。
    猜你喜欢
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 2014-11-11
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多