Java 常見中文亂碼問題以及解決方案

2021-07-13 13:54:00 字數 2038 閱讀 6770

關於亂碼問題無非就是編碼方式不同,導致「沒法交流」,就會出現亂碼,就好像,乙個只會說中文的中國人和乙個只會說英文的美國人,語言不同,沒法交流,這就會產生「亂碼」。解決方案就是:將編碼方式改為一致。

下面總結常見的幾種亂碼問題以及解決方案:

今天在通過jdbc連線資料庫後,本打算在資料庫插入一條中文資料,但是資料表中一直亂碼,像這樣:

中文使用???代替。

首先通過jdbc連線資料庫後插入資料時,你應該保證以下三處的編碼方式相同(推薦utf-8編碼方式)

1:eclipse檔案儲存的編碼方式 具體:windows——>preferences——>general——>workspace-->找到編碼方式-->修改。

2:資料庫的編碼方式或者說你資料表中字段的編碼方式

3:jdbc連線的編碼方式

前兩點是一般都能想到的,但是第三點忽略則很容易導致資料中文亂碼情況,第三條的解決方案就是將獲取資料庫連線改為:

string url="jdbc:mysql://localhost:3306/資料庫名?characterencoding=utf-8

我們再執行程式,發現中文就顯示正常了

很多人在servlet中明明用:

request.setcharacterencoding("utf-8");

response.setcontenttype("text/html; charset=utf-8");

設定了編碼方式,但是在用瀏覽器顯示頁面,還是會出現亂碼,像我這樣:

但是我們在eclipse中執行就可以顯示出中文,

原因在於:

你eclipse中設定的儲存編碼方式和瀏覽器的編碼方式不一致所導致。

解決方案:

windows——preferences——general——workspace找到這裡

然後開啟瀏覽器的如圖:

設定和eclipse編碼方式一致即可。

使用hibernate向資料庫插入中文資料時資料庫中總是不顯示中文字元,像這樣:

中文字元用?代替。而且我們資料庫欄位的編碼方式以及eclipse儲存編碼方式都設定了utf-8,問題就出在了hibernate的預設編碼方式不是utf-8,這樣就導致與資料庫的編碼方式不同出現亂碼。

解決方案:

在hibernate.cfg.xml配置檔案中設定與你資料庫和專案相同的編碼方式,這裡是設定的utf-8,如下:

utf-8
這樣再執行就可以了。

因此在使用hibernate框架的專案中,以下3處的編碼方式是必須統一的

1:配置檔案hibernate.cfg.xml編碼方式,上面已經給出

2:資料庫字段編碼方式

3:eclipse檔案儲存的編碼方式

常見中文亂碼問題

一 常見亂碼問題 1.1 ajax請求中文引數亂碼 傳送ajax請求時,如果引數中有中文,服務端獲取到引數後,有可能亂碼。1.2 外聯js 中文字元亂碼 外聯方式引入js檔案,如果js的 中有中文,有可能亂碼。下面就來依次分析這兩個場景。二 ajax請求中文引數亂碼 ajax請求分為get和post...

Ubuntu gedit 中文亂碼問題 秒解

在中文支援配置還不完整的ubuntu 14.04中,使用gedit開啟帶有中文字元的檔案有時會出現亂碼的情況,這是由於gedit對字元編碼匹配不正確導致的,解決方法如下 在終端中輸入如下命令,然後重新開啟gedit即可 gsettings set org.gnome.gedit.preference...

RecyclerView常見的問題以及解決方案

2018第乙個星期過了,第一篇部落格東拼西湊出來了,之前的部落格一直都是東拼西湊總結別人的內容,我暫時沒有什麼原創,就記錄一下平時開發中遇到的問題吧,也算是進步的開始了。以下詳細描述問題以及解決方法 這個問題主要是由於inflate方法引數不正確引起的。layoutinflate.inflate 方...