java mysql乱码_41、java与mysql乱码的问题
解決方法一:(最重要的一種方法)
你看下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
UTFEncoding
*.jsp
UTFEncoding
*.do
總結
以上是生活随笔為你收集整理的java mysql乱码_41、java与mysql乱码的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java+spring+mysql配置_
- 下一篇: mysql创建的是拉丁_将MySQL数据