生僻字顯示?的字元亂碼解決

自在现实發表於2024-05-10

現儲存生僻漢字時,存為了?,分析後是 varchar 欄位字符集不支援 Unicode,使用的簡體中文字符集。
現改為 nvarcahr型別即可。

當需要儲存生僻漢字時,使用 nvarchar型別,該型別會儲存 Unicode 字元資料的整個範圍。
而varchar 僅會儲存該排序規則的相應內碼表支援的字元子集(當排序不是UTF-8 的排序規則時,國內有些是 簡體中文的編碼,就會無法儲存生僻字)。

varchar:
字元資料型別 char(大小固定)或 varchar(大小可變)。 從 SQL Server 2019 (15.x) 起,使用啟用了 UTF-8 的排序規則時,這些資料型別會儲存 Unicode 字元資料的整個範圍,並使用 UTF-8 字元編碼。 若指定了非 UTF-8 排序規則,則這些資料型別僅會儲存該排序規則的相應內碼表支援的字元子集。

nvarchar:
字元資料型別 nchar(大小固定)或 nvarchar(大小可變)。 從 SQL Server 2012 (11.x) 起,使用啟用了補充字元 (SC) 的排序規則時,這些資料型別會儲存 Unicode 字元資料的整個範圍,並使用 UTF-16 字元編碼。 若指定了非 SC 排序規則,則這些資料型別僅會儲存 UCS-2 字元編碼支援的字元資料子集。

相關文章