簡體   English   中英

MySQL,Java和UTF8

[英]MySQL, Java and UTF8

我在每個表上都有ENGINE=InnoDB DEFAULT CHARSET=utf8表中具有MEDIUMBLOB字段的數據庫。

我使用URL上的useUnicode=true&characterEncoding=UTF8&character_set_client=UTF8&character_set_database=UTF8&character_set_results=UTF8&character_set_server=UTF8&character_set_system=UTF8連接到數據庫。

(我嘗試只使用useUnicode=true&characterEncoding=UTF8獲得相同的結果。)

當我從命令行使用mysql查看數據庫中的值時,我可以看到非ASCII字符就好了。

但是,當我使用executeQuery() getString()從數據庫中讀取字符串時,我變得亂七八糟。 如何正確讀取值?

我正在使用log4j來顯示我正在寫到數據庫中的字符串,我讀回的字符串以及我寫的那些字符串都很好。

那是BLOB,不是字符串。 因此,您需要getBytes並對其進行手動解碼。

 new String( bytes, "UTF-8"); //Subsitute "UTF-8" with whatever encoding the blob is in

如果要獲得更透明的支持,請使用UTF-8定義一個中文本列。 這樣所有配置將生效,並且您可以使用getString自動獲得正確的字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM