【问题标题】:SQL Server returns question mark for some unicode chars [duplicate]SQL Server返回一些unicode字符的问号[重复]
【发布时间】:2019-11-27 05:36:46
【问题描述】:

如果我像这样存储 unicode 字符,则在 nvarchar(512) 字段中:

UPDATE MYTABLE SET UNICODEFIELD = 'TレEホSᅯTル'

当我查询它时,我得到了

T?E?S?T?

看起来“不寻常”字符不被视为 unicode,我希望“?” varchar 的情况下的行为,而 nvarchar 应该可以正常工作,我期待

TレEホSᅯTル

作为输出,而不是

T?E?S?T?

有人知道吗?

【问题讨论】:

  • 这个问题被标记为duplcite,但它不是重复的,另一个问题是关于N前缀的,这里的答案是关于它的。我认为最好将其作为一个单独的问题保留,因为它可能很有用。

标签: sql-server unicode sql-server-2016


【解决方案1】:

因为您使用的是varchar,而不是nvarchar'TレEホSᅯTル' = 'T?E?S?T?' 因为像 这样的字符不能存储在 varchar 中。

使用文字nvarchar

UPDATE MYTABLE SET UNICODEFIELD = N'TレEホSᅯTル';

【讨论】:

  • 是的。就那么简单。到目前为止,我总是忽略那个“N”,因为我曾经通过为我处理这些数据的 copmonents 来存储 unicode 数据。谢谢。
猜你喜欢
  • 2021-10-16
  • 2013-10-18
  • 2012-02-05
  • 1970-01-01
  • 2011-12-27
  • 1970-01-01
  • 2017-01-18
  • 2021-12-07
  • 2011-03-18
相关资源
最近更新 更多