今天有一項小任務,把資料新增到簡中的SQL Server內,原本單純的任務,卻出現了中文亂碼的問題。
我是用SQL的insert語法在SQL Server Management Studio中把資料新增到資料庫中。
在SQL Server Management Studio中簡體中文是顯示正常的,新增也沒有問題。
新增完成後,檢查資料發現,僅有部份的中文是顯示「?」,但是多數中文卻又是正常的。
在查詢網路文章之後,發現有人提到SQL Server的欄位是NCHAR、NVARCHAR時,中文是使用Unicode編碼,
而程式碼或編輯管理工具有可能不是Unicode編碼,導致部份中文出現亂碼。
而解決的方式是使用前置詞大寫的「N」,而我加入後,中文果然就解決了。
例如:
insert temp value (N'台南',N'天氣')
微軟關於定序的說明:
https://docs.microsoft.com/zh-tw/sql/relational-databases/collations/collation-and-unicode-support?view=sql-server-ver15#SQL-collations