使用 Microsoft SQL Server 2000 JDBC Driver 讀取中文資料時,輸出變成亂碼(如 ??,??'???'+???)。
SQL Server 2000 提供兩類字元資料型別:
nchar, nvarchar, ntext — 使用雙位元組儲存,不受代碼頁影響。char, varchar, text — 依賴單/雙位元組代碼頁,中英文混雜易導致編碼不匹配。JDBC 驅動預設按代碼頁解碼,若資料庫欄位為非 Unicode 型別且存入中文,讀取時極易亂碼。
nvarchar、nchar 或 ntext。Chinese_PRC_CI_AS)。sendStringParametersAsUnicode=true(視驅動版本而定)。自此,中文存取問題徹底解決,無需在程式碼中處理編碼轉換。