如何解決MSSQL中文數據亂碼問題

今天遇到了在數據庫中直接寫SQL語句,語句中包含中文,可是數據庫的表裏是包含「?」 的亂碼。sql

我程序代碼中,調試時獲得的SQL不是亂碼,在控制檯中也不是亂碼。可是在數據庫中卻出現了亂碼。數據庫


當用MSSQL控制檯去插入或更改中文數據時,中文字符可能會被顯示成問號(??),如下提供2種解決辦法:網站

1.在SQL里加上‘N’強制轉換編碼
  a.把全部字符字段都改爲無符號類型,如:nchar,ntext,nvarchar
  b.用查詢分析器進行數據管理,在中文數據前加N,強制轉換編碼,如:insert into test(name,address) values(N'技術',N'易網庫')編碼

2.改數據庫的排列規則(collation)
  a.執行下面sql語句改collation:
  alter database 數據庫名稱 collate Chinese_PRC_CI_AS
  b.把全部字符字段都改爲無符號類型,如:nchar,ntext,nvarchar

注意:調試

  1.對已經亂碼的數據,沒有效果
  2.這隻針對MSSQL控制檯中文亂碼的問題,如果網站亂碼,得進一步檢查文件存儲編碼和顯示編碼的設置。
  3.執行下面的sql語句,能夠查看當前數據庫的排列規則:
  SELECT DATABASEPROPERTYEX('數據庫名稱', 'Collation') SQLCollation;io

相關文章
相關標籤/搜索