mysql jsp servlet 中文亂碼問題。

2022-08-26 15:48:20 字數 1076 閱讀 6549

google一下。。你可以找一大堆解決方案。。但是我覺得都沒有從根本上解決問題。。是不是?

我覺得要想根本解決。。最主要的方法是統一編碼方案。。說出來很簡單。。原因也很簡單。。但你真的做到了嗎。。

首先不論你寫的是jsp servlet html 等都必須顯示標明contenttype為utf-8(強烈推薦是utf-8..windows預設應該是gbk 什麼2312的。。)。。

然後request也要設定同樣的編碼方案。。不解釋。。原因。。就像說話。。如果你說中文。另乙個人說英語。。還有乙個說阿拉伯。。你行嗎?

這樣之後。。你的工作只解決了一半,。。mysql還要設定統一編碼方案。。對吧。。在mysql配置檔案my.cnf ,windows應該是my.ini,在client後面統一用utf-8.加上

default-character-set=utf8(不要寫出utf-8,容易造成引數解析)。。然後伺服器也要設定。。在mysqld下新增:character-set-server=utf8..之後在試下效果如何呢?

還是亂碼對不對?

沒錯。。因為資料庫。還是使用其他編碼。。你進入mysql下。。輸入status。顯示四個編碼。。是一樣的嗎。。不一樣的話還是有問題。。

怎麼辦。。臨時的話可以使用set nemes utf8 但沒有用。。想要長期有效。。可以這樣。。試試:alter database databasename character set utf8 。。這樣再status下。。看看是不是一樣的了?

好了。。事情算是完成了。。但你會發現你現在連中文都插入不進去。。提示什麼非法字元。。這豈不是事情更糟了嗎?

對。。事情發展成這樣了。。原因是你建表的時候編碼依然不是utf8,你可以試試:show create table tablename 。。發現了嗎。。預設建表是什麼呢?

所以要想完全解決問題。。只有重新建表。。很麻煩不是?備份吧。。方法還用多說嗎?上面的日誌寫得很清楚了。。自己看看吧。。

注意:無論你改了什麼配置。。都不會預設自動生效。。需要重啟mysql 。。。。不會的話重啟電腦。。。

還要注意的是好像windows下的虛擬dos不支援utf8.所以如果還是不能解決問題。。可能是你的系統問題。。裝linux吧。。

webView loadData 中文亂碼問題

使用 loaddata方法是中文部分會出現亂碼,即使指定 utf 8 gbk gb2312 也一樣。webview.getsettings setdefaulttextencodingname utf 8 設定預設為utf 8 text html utf 8 api提供的標準用法,無法解決亂碼問題 ...

jsp,tomcat,MYSQL下中文亂碼問題

這些天除錯開發乙個lucene專案,伺服器是tomcat,資料庫是mysql5,作業系統是xp,採用的是mvc架構,模式是採用facade模式,總是出現亂碼,頁面字符集 資料庫編碼 tomcat 專案編碼全部都是utf 8,可是沒想到表單裡提交的資料裡的中文還是有亂碼,經過思考,發現通過簡單的資料庫...

spring mybatis中文亂碼編碼問題

配置檔案 這裡有一點需要注意的是,在xml配置檔案中,需要將 符號轉義,所以這裡要寫成 id ds class org.apache.commons.dbcp.basicdatasource name driverclassname value com.mysql.jdbc.driver name ...