java與mysql亂碼的問題

2021-08-15 20:12:00 字數 1897 閱讀 8801

關於亂碼問題可以從五個方面進行著手:

1 mysql配置  my.ini

2 連線mysql的**

3 **層面

4 mysql的檔案

5 tomcat伺服器  web.xml

解決方法一:(最重要的一種方法)

你看下my.ini,有無 

[mysql]

default-character-set=utf8

[client] 

default-character-set=utf8

[mysqld] 

default-character-set=utf8 

然後建立表時,也要用(比如) 

drop   table   if   exists   `company`; 

create   table   if   not   exists   `company` 

( `cname`   varchar(10)   not   null, 

`caddr`   varchar(100), 

`ctel`     varchar(16) 

)engine=innodb   default   charset=utf8; 

這樣就沒問題。

如果是jsp要宣告:

contenttype="text/html;charset=gb2312"

解決方法二:

連線mysql時(無論在從mysql讀還是取資料的情況),指定使用的編碼方式為utf-8,具體**如下

//裝載mysql-jdbc驅動

class.forname("com.mysql.jdbc.driver").newinstance();

//連線資料庫

connection sqlcon = drivermanager.getconnection( "jdbc:mysql://localhost:3306/test?                         user=root&password=1&useunicode=true&characterencoding=utf-8" );

解決方法三:

如果方法一不行那麼在方法一的基礎上對讀入的字串進行強制編碼方式轉換。

**示例如下:

string name = rst.getstring("name");

name= new string(name.getbytes("iso-8859-1"),"utf-8");

注:**也可以為:string name =new string( rst.getstring("name").getbytes("iso-8859-1"),"utf-8"));其中rst為返回的resultset,iso-8859-1為mysql預設的編碼方式,**的目的是把以iso-8859-1的編碼轉換為gb2312編碼方式,這樣強制轉換,可以解決一部分問題,如果結合方法一,應該可以解決中文亂碼問題。

解決方法四:

這個方法在有些文章裡是首推的,我首先也是試了這個方法,但是好像不行。這裡還是說一下,不知是不是我操作錯誤。還是先貼原文吧:

"如果資料庫中有中文的話而mysql預設的語言不是中文時要在配置檔案c:winntmy.ini 中的 [mysqld] 裡新增一行:

default-character-set=utf-8

然後重起mysql

方法五:在tomcat conf  裡面的web.xml裡面更改:

utfencoding   

com.founder.chenph.util.encodingfilter_utf8   

encoding   

utf-8   

java與mysql亂碼的問題

解決方法一 最重要的一種方法 你看下my.ini,有無 mysql default character set utf8 client default character set utf8 mysqld default character set utf8 然後建立表時,也要用 比如 drop ta...

java與mysql亂碼的問題

解決方法一 最重要的一種方法 你看下my.ini,有無 mysql default character set utf8 client default character set utf8 mysqld default character set utf8 然後建立表時,也要用 比如 drop ta...

Java與mysql亂碼的問題

解決方法一 最重要的一種方法 你看下my.ini,有無 mysql default character set utf8 client default character set utf8 mysqld default character set utf8 然後建立表時,也要用 比如 drop ta...