SQL Server如何将这些Unicode字符存储到VARCHAR(MAX)而不是NVARCHAR(MAX)的列中

时间:2017-09-08 04:30:19

标签: sql-server unicode utf-8

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

enter image description here

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

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

并使用Visual Studio调试器:

enter image description here

=>所以2x撇号和2x子弹。

我认为如果列的类型为NVARCHAR

,SQL Server只能存储Unicode

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

1 个答案:

答案 0 :(得分:1)

  

我认为如果列的类型是NVARCHAR,SQL Server只能存储Unicode吗?

那是对的。据我所知,你的例子中没有存储Unicode。可能它存储在Windows代码页1252中编码的字节,这将是西方安装SQL Server的默认编码。

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