【问题标题】:How does SQL Server store these Unicode characters into a column that is VARCHAR(MAX) and not NVARCHAR(MAX)SQL Server 如何将这些 Unicode 字符存储到 VARCHAR(MAX) 而不是 NVARCHAR(MAX) 的列中
【发布时间】:2018-02-16 22:04:26
【问题描述】:

我有一些我认为是 Unicode 的数据,看看当我将它存储到我的数据库列中时会发生什么,该列是 VARCHAR(MAX) 数据类型。

这是源代码,来自 UTF-8 文件...

looking for that ‘X’ and • 3 large bedrooms with 2 ensuites and • Main bedroom with ensuite & surround with plantation shutters`

并使用 Visual Studio 调试器:

=> 所以 2x 撇号和 2x 项目符号。

我认为如果列的类型为NVARCHAR,SQL Server 只能存储 Unicode?​​p>

我假设我的源数据不是 Unicode,因此,我完全不喜欢所有这些 Unicode/UTF-8 的东西 :(

【问题讨论】:

标签: sql-server unicode utf-8


【解决方案1】:

我认为如果列是 NVARCHAR 类型,SQL Server 只能存储 Unicode?​​p>

没错。据我从您的示例中可以猜到,它不存储 Unicode。可能它正在存储在 Windows 代码页 1252 中编码的字节,这将是 SQL Server 西方安装的默认编码。

代码页 1252 happens to include 映射字符 ,因此可以安全地存储这些字符。但是如果跳出这个有限的曲目,你就会开始失去角色。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多