2017-09-08 33 views
0

我有一些我認爲是Unicode的數據,並且看到將它存儲到我的數據庫列中時會發生什麼VARCHAR(MAX)數據類型。SQL Server如何將這些Unicode字符存儲到VARCHAR(MAX)而不是NVARCHAR(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

=>所以2個撇號和2個子彈。

我以爲SQL Server只能存儲Unicode,如果該列的類型是NVARCHAR

我假設我的源數據不統一,因此,我完全在這一切的Unicode/UTF-8的東西:(吸

+1

它看起來像十六進制代碼,而不是unicode。你可以查看http://www.ascii.cl/htmlcodes.htm。 unicode通常表示爲?在varchar colums中。還請檢查https://social.msdn.microsoft.com/Forums/sqlserver/en-US/f7ed0f1a-14e2-4c7d-ab0a-405e48f8b7e1/inserting-unicode-text-into-varchar-column-?forum=transactsql – Yeou

回答

1

我認爲SQL Server只能存儲Unicode如果列的類型爲nvarchar?

這是正確的。至於我可以從你的榜樣,它不是存儲Unicode猜測,也許它是存儲在Windows代碼頁1252編碼字節,這將是默認的編碼爲西方安裝SQL Server。

代碼頁1252 happens to include字符映射,,所以這些字符可以安全地存儲。但是走出這個有限的曲目,你會開始失去人物。

相關問題