首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 儲存中文簡體字解決方案:Unicode 資料型別與 N 前綴實作

     編輯:關於SqlServer

問題現象

資料表欄位使用非 Unicode 型別 (char/varchar/text) 時,插入中文簡體字會出現亂碼或截斷。

解決方案:全面改用 Unicode 型別

原型別Unicode 對應
charnchar
varcharnvarchar
textntext

關鍵實作細節

  1. 資料表結構變更:ALTER TABLE ... ALTER COLUMN ... NVARCHAR(...)
  2. 插入/更新語句:字串常數**必須加 N 前綴**
    INSERT INTO YourTable (Col1) VALUES (N'中文內容');
    UPDATE YourTable SET Col1 = N'新內容' WHERE ID = 1;
    
  3. 參數化查詢:使用 SqlParameter 時無需 N 前綴,ADO.NET 自動處理 Unicode

原理說明

  • 非 Unicode 型別依賴資料庫/伺服器預設代碼頁 (如 CP936/CP950),字元集有限
  • Unicode 型別 (UCS-2/UTF-16) 涵蓋所有中日韓統一表意文字,無代碼頁轉換問題
  • N 前綴告訴 SQL Server 此字串常數為 Unicode,避免隱性轉換

補充建議

  • 新專案**預設使用 Unicode 型別**,避免後續轉換成本
  • nvarchar(max) 取代 ntext (SQL 2005+ 建議)
  • 資料庫預設排序規則建議支援中文 (如 Chinese_PRC_CI_AS)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved