java mysql乱码_41、java与mysql乱码的问题
解決方法一:(最重要的一種方法)
你看下my.ini,有無(wú)
[MySQL]
default-character-set=utf8
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
然后建立表時(shí),也要用(比如)
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;
這樣就沒(méi)問(wèn)題。
如果是jsp要聲明:
contentType="text/html;charset=gb2312"
解決方法二:
連接mysql時(shí)(無(wú)論在從mysql讀還是取數(shù)據(jù)的情況),指定使用的編碼方式為utf-8,具體代碼如下
//裝載mysql-jdbc驅(qū)動(dòng)
Class.forName("com.mysql.jdbc.Driver").newInstance();
//連接數(shù)據(jù)庫(kù)
Connection sqlCon = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test????????????????????????? user=root&password=1&useUnicode=true&characterEncoding=utf-8" );
解決方法三:
如果方法一不行那么在方法一的基礎(chǔ)上對(duì)讀入的字符串進(jìn)行強(qiáng)制編碼方式轉(zhuǎn)換。
代碼示例如下:
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默認(rèn)的編碼方式,代碼的目的是把以ISO-8859-1的編碼轉(zhuǎn)換為gb2312編碼方式,這樣強(qiáng)制轉(zhuǎn)換,可以解決一部分問(wèn)題,如果結(jié)合方法一,應(yīng)該可以解決中文亂碼問(wèn)題。
解決方法四:
這個(gè)方法在有些文章里是首推的,我首先也是試了這個(gè)方法,但是好像不行。這里還是說(shuō)一下,不知是不是我操作錯(cuò)誤。還是先貼原文吧:
"如果數(shù)據(jù)庫(kù)中有中文的話而mysql默認(rèn)的語(yǔ)言不是中文時(shí)要在配置文件C:winntmy.ini 中的 [mysqld] 里添加一行:
default-character-set=utf-8
然后重起mysql
方法五:在tomcat conf? 里面的web.xml里面更改:
UTFEncoding
com.founder.chenph.Util.EncodingFilter_UTF8
encoding
UTF-8
UTFEncoding
*.jsp
UTFEncoding
*.do
總結(jié)
以上是生活随笔為你收集整理的java mysql乱码_41、java与mysql乱码的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java+spring+mysql配置_
- 下一篇: mysql创建的是拉丁_将MySQL数据