Datagrip連線SQLserver表中出現中文亂碼解決方案
Datagrip版本: 2020.3
Sqlserver版本: 2019 for docker
從網上搜尋了很多方案都說是Datagrip顯示字型的問題,結果更改後發現並不能解決問題,於是嘗試將表中列的資料型別由 char、varchar 切換為 nvarchar , 在執行 insert into 語句時在資料之前加上 N , 發現在檢視錶時中文就顯示正常了。
示例:
insert into student
values('200515004', N'張衡', N'男', 18, 'IS');
那到底為什麼會中文亂碼呢?
究其原因,是因為在建立 SQLserver 資料庫時未指定排序字符集,Databases則會使用instances的排序規則.
為了支援中文,需要設定成Chinese_PRC_CI_AS.
使用SQL語句實現:
ALTER DATABASE 資料庫名 COLLATE Chinese_PRC_CI_AS
若出現操作報錯的情況,則是因為出現資料庫被其他使用者連線使用時,出現排他鎖的錯誤。此時用SQL語句修改資料庫為單使用者模式——改排序規則——再修改回多使用者。
由於之前建立資料庫忘記了設定Collocation,資料庫中插入中文字元都是亂碼,於是到DataBase的Options中修改Collocation,出現了 The database could not be exclusively locked to perform the operation 這個錯誤,無法修改字符集為Chinese_PRC_90_CI_AS.
解決方案:
①修改為單使用者模式
ALTER DATABASE 資料庫名 SET SINGLE_USER WITH ROLLBACK IMMEDIATE
②修改資料庫字符集
ALTER DATABASE 資料庫名 COLLATE Chinese_PRC_90_CI_AS
③修改為多使用者模式
ALTER DATABASE 資料庫名 SET MULTI_USER
相關文章
- java連線mysql中文亂碼解決之道JavaMySql
- 解決ssh連線CentOS後中文顯示亂碼CentOS
- SqlServer資料庫中文亂碼問題解決SQLServer資料庫
- mysql 插入中文亂碼解決方案 轉MySql
- navicat for mysql顯示中文亂碼解決方案MySql
- css中文字型亂碼解決方案CSS
- python 中文亂碼問題解決方案Python
- 表單傳值出現亂碼問題解決方案
- oracle 輸出中文亂碼問題解決方案Oracle
- Linux終端中文菱形亂碼解決方案Linux
- RHEL中文亂碼解決
- HttpClient 解決中文亂碼HTTPclient
- [原創]Gerrit中文亂碼問題解決方案分享
- JSP中文亂碼問題終極解決方案JS
- eclipse 中文亂碼問題解決方案彙總Eclipse
- xshell連線linux中文亂碼Linux
- 使用Kettle抽取資料時,出現中文亂碼問題解決方案
- ORACLE亂碼解決方案Oracle
- Java亂碼解決方案Java
- request/response解決中文亂碼
- eclipse中文亂碼解決Eclipse
- myeclipse解決中文亂碼Eclipse
- 解決Linux中文亂碼Linux
- ROS中解決中文亂碼ROS
- 解決中文亂碼問題
- sqlldr 匯入中文出現亂碼解決方法SQL
- JSP中文亂碼問題終極解決方案(上)JS
- ajax呼叫,action返回的中文為亂碼的解決方案
- SecureCRT 下MySQL中文亂碼問題終極解決方案SecurecrtMySql
- iframe利用get方式傳遞中文引數會出現亂碼解決方案
- SecureCRT遠端連線顯示中文亂碼Securecrt
- SSH連線Linux中文亂碼問題Linux
- MySql中文亂碼問題解決MySql
- Jmeter 解決中文亂碼問題JMeter
- 解決 SecureCRT 和 SecureFX 中文亂碼Securecrt
- Java 解決中文亂碼問題Java
- RDSSQLSERVER解決中文亂碼問題SQLServer
- Windows下Clion中文亂碼解決Windows