sqlserver字元編碼
① 怎麼看sqlserver的編碼
SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')
下面是查詢結果:
936 簡體中文GBK
950 繁體中文BIG5
437 美國/加拿大英語
932 日文
949 韓文
866 俄文
65001 unicode UFT-8
② 怎麼查看SQLSERVER的字元集設置
user master
select SERVERPROPERTY(N'edition') as Edition --數據版本,如企業版、開發版等
SERVERPROPERTY(N'collation') as Collation --資料庫字元集
SERVERPROPERTY(N'servername') as ServerName --服務名
@@VERSION as Version --資料庫版本號
@@LANGUAGE AS Language --資料庫使用的語言,如us_english等
參考資料鏈接:http://www.cnblogs.com/fygh/archive/2012/05/15/2501598.html。
拓展:
1、SQL是英文Structured Query Language的縮寫,意思為結構化查詢語言。SQL語言的主要功能就是同各種資料庫建立聯系,進行溝通。按照ANSI(美國國家標准協會)的規定,SQL被作為關系型資料庫管理系統的標准語言。SQL Server是由Microsoft開發和推廣的關系資料庫管理系統(DBMS)。
2、SQL Server是由Microsoft開發和推廣的關系資料庫管理系統(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發的,並於1988年推出了第一個OS/2版本。Microsoft SQL Server近年來不斷更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用戶見面;SQL Server 2000是Microsoft公司於2000年推出,目前最新版本是2015年份推出的SQL SERVER 2015。
③ sqlserver 2008中哪個排序規則是UTF-8
今天使用php操作資料庫時發現插入SQLServer2008資料庫里的中文欄位出現亂碼,下面是我一開始時的一些情況:開發環境是php5.3.3+Apache2.2.17+SQLServer2008,php腳本文件的編碼是utf-8,傳給資料庫的編碼是GB2312(SQLServer的默認字元編碼可能是這個,我不肯定),我用的是微軟官方提供的SQLSRV庫來連接資料庫的(PS:SQLServer2005開始已經不支持用mssql.dll來連接了),故使用sqlsrv_query($conn,"setnamesGB2312");語句來設置傳給資料庫的編碼格式的,sql語句這樣寫了:insertintoOpinion(content)values('aaa中文內容');運行這條sql語句,發現執行不成功,用sqlsrv_errors()函數來輸出錯誤信息,得到如下結果:復制代碼代碼如下:Array([0]=>Array([0]=>IMSSP[SQLSTATE]=>IMSSP[1]=>-46[code]=>-46[2]=>-16:�ڶ��ֽڵ�Ŀ�����ҳ�У�û�д�Unicode�ַ����ӳ�䵽���ַ�.[message]=>-16:�ڶ��ֽڵ�Ŀ�����ҳ�У�û�д�Unicode�ַ����ӳ�䵽���ַ�.))這是在網頁上顯示的結果,上面的亂碼是原封不動下來的。從「-16」可以看出是字元編碼轉換有問題導致的。於是我使用php的iconv函數來對中文進行強制編碼轉換,然後執行sql語句,代碼如下:復制代碼代碼如下:$string=iconv('utf-8','GB2312//IGNORE','aaa中文內容');$sql="insertintoOpinion(content)values($string)";[code]這時候又報錯了,錯誤信息如下:[code]Array([0]=>Array([0]=>42S22[SQLSTATE]=>42S22[1]=>207[code]=>207[2]=>[Microsoft][SQLServerNativeClient10.0][SQLServer]����'aaa��������'��Ч��[message]=>[Microsoft][SQLServerNativeClient10.0][SQLServer]����'aaa��������'��Ч��))這個錯誤信息看不出什麼頭緒,我又把sql語句輸出到網頁上看一下是不是sql語句寫錯了,輸出結果如下:復制代碼代碼如下:insertintoOpinion(content)values(aaa��������)咋一看好像沒問題,其實是有問題的,注意到後面那個括弧里的參數是應該用引號來括起來的(表示它是一個字元串),所以我又修改了sql語句,代碼如下:復制代碼代碼如下:$sql="insertintoOpinion(content)values('".$string."')";為了看清楚我放大點用單引號把$string括起來,這樣之後執行sql語句成功,並且資料庫里保存的中文沒有亂碼。
④ 怎麼設置sqlserver的編碼如果不設置存進去的中文都是亂碼了,是否可以在資料庫里設置編碼
可以設置,一般使用gb2312或者拉丁字元集,其實有的時候在資料庫里看著是亂碼但是讀出來還是可以識別的
⑤ 經典sqlserver亂碼問題
親,這個是字元編碼問題,資料庫默認是GBK或者GB2312國標,你輸入的時候,可能是UTF-8,兩者一致才不會出現亂碼。
⑥ jsp在連接sqlserver2005資料庫中用不用改字元編碼,默認的是什麼
應該不比修改字元編碼,
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String
strConn=
"jdbc:sqlserver://localhost;databaseName=userid;user=sa;";
Connection
conn=
DriverManager.getConnection(strConn);
Statement
stmt=conn.createStatement();
直接就可以用了