今天遇到了在數據庫中直接寫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