簡體   English   中英

不支持UTF-8字符

[英]UTF-8 character not supporting

我試圖在數據庫中添加行,如下所示:

String query = "update Mutable e set e.Name = "Благодаря";
Statement s;
s.execute(query);

但是它更新為?????? 在數據庫中。 我將此名稱設置為俄語字符串。 但是,如果我在MySQL查詢瀏覽器中運行相同的查詢,那么它將正確更新名稱。 我找不到原因。

此問題已解決。 問題出在my.cnf文件中。 在my.cnf文件中,默認字符集為latin1。 我將其更改為UTF8,並成功了。

  1. 嘗試

    “更新變量集e.Name ='\\ u0411 \\ u043b \\ u0430 \\ u0433 \\ u43e \\ u00434 \\ u0430 \\ u0440 \\ u044f'”;

    u轉換為ASCII消除了一個問題:java源文本的編碼必須與javac編譯器使用的編碼相同。

  2. 然后,在具有非西里爾編碼的Windows或IDE控制台中,結果很容易顯示為假。 與您一樣檢查數據庫中的結果。

    您可以間接檢查值:

     System.out.println("Okay: " + !fieldValue.contains("?")); 
  3. 驗證連接字符串是否類似於:

     "jdbc:mysql:///dbname?useUnicode=true&characterEncoding=utf-8" 

    這樣可以確保驅動程序通信使用UTF-8。

暫無
暫無

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

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