我遇到以下問題。 java結果集不顯示Unicode(中文)字符,但顯示所有其他字符。我確信所有字符都可以從Microsoft SQL Server中正確存儲/顯示(如nvarchar)。Java結果集不顯示Unicode(中文)字符,但顯示爲問號
所以它似乎是一個檢索問題。下面是代碼:
保護字符串getStringValueNoNulls(RS結果集,字符串COLNAME) {
String ret = rs.getString(colName);
ret = new String(ret.getBytes(), "UTF8");
System.out.println(ret);
... 輸出的打印語句:
SO(SO在DB)
??? (張先生在DB)
?????? 9999(DB建國門外大街9999)
?? (北京在DB)
100010(100010在DB)
它顯示所有英文/ ASCII字符而不是中國漢字。我注意到中文字符的數量等於它所替代的問號。
我已經嘗試過只是簡單的getString(),現在做getBytes()轉換都產生相同的結果。
是我缺少的東西,或者它可能是驅動程序的問題?請幫忙。
----------------我只是說這是我的連接,並沒有幫助:
的Class.forName(「com.microsoft.sqlserver.jdbc。 SQLServerDriver「);
String connectionUrl =「jdbc:sqlserver://127.0.0.1:1433; database = myDB; user = myuser; password = myPass; useUn icode = true; characterEncoding = UTF-8」;
Connection con = DriverManager.getConnection(connectionUrl);
對於漢字仍然有相同的問題標記。
問候。
檢查:http://stackoverflow.com/questions/6838446/utf-encoding-for-chinese-charactersjava –
貴控制檯('系統。 out'目的地)實際上是否支持打印這些字符? –