下文我給大家簡單講講關(guān)于java插入MySQL數(shù)據(jù)出現(xiàn)亂碼應(yīng)該如何解決,大家之前了解過相關(guān)類似主題內(nèi)容嗎?感興趣的話就一起來看看這篇文章吧,相信看完java插入mysql數(shù)據(jù)出現(xiàn)亂碼應(yīng)該如何解決對大家多少有點(diǎn)幫助吧。
公司主營業(yè)務(wù):成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出革吉免費(fèi)做網(wǎng)站回饋大家。
方式一:設(shè)置編碼統(tǒng)一
1.設(shè)置eclipse環(huán)境編碼(推薦:java視頻教程)
2.設(shè)置mysql環(huán)境編碼
mydb為需要修改的數(shù)據(jù)庫名稱
方式二:創(chuàng)建數(shù)據(jù)庫時設(shè)置編碼
1.mysql創(chuàng)建database時設(shè)置編碼
create database mydb default character set utf8 collate utf8_general_ci;
2.創(chuàng)建表時設(shè)置編碼
CREATE TABLE `type` ( `id` int(10) unsigned NOT NULL auto_increment, `flag_deleted` enum('Y','N') character set utf8 NOT NULL default 'N', `flag_type` int(5) NOT NULL default '0', `type_name` varchar(50) character set utf8 NOT NULL default '', PRIMARY KEY (`id`) ) DEFAULT CHARSET=utf8;
方式三:連接數(shù)據(jù)庫時設(shè)置
在URL后添加?useUnicode=true&characterEncoding=UTF-8
public class TestJdbc { private static String URL = "jdbc:mysql://localhost:3306/studentmanage?useUnicode=true&characterEncoding=UTF-8"; useUnicode=true&characterEncoding=UTF-8 private static String USER = "root"; private static String PASSWORD = "root"; public static void main(String[] args) { Connection con = null; String sql = "insert into user(uid,uname,password) values(?,?,?)"; try { Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection(URL, USER, PASSWORD); con.close(); } catch (Exception e) { e.printStackTrace(); } }
添加的作用是:指定字符的編碼、解碼格式。
例如:mysql數(shù)據(jù)庫用的是gbk編碼,而項(xiàng)目數(shù)據(jù)庫用的是utf-8編碼。這時候如果添加了useUnicode=true&characterEncoding=UTF-8 ,那么作用有如下兩個方面:
存數(shù)據(jù)時:
數(shù)據(jù)庫在存放項(xiàng)目數(shù)據(jù)的時候會先用UTF-8格式將數(shù)據(jù)解碼成字節(jié)碼,然后再將解碼后的字節(jié)碼重新使用GBK編碼存放到數(shù)據(jù)庫中。
取數(shù)據(jù)時:
在從數(shù)據(jù)庫中取數(shù)據(jù)的時候,數(shù)據(jù)庫會先將數(shù)據(jù)庫中的數(shù)據(jù)按GBK格式解碼成字節(jié)碼,然后再將解碼后的字節(jié)碼重新按UTF-8格式編碼數(shù)據(jù),最后再將數(shù)據(jù)返回給客戶端。
大家覺得java插入mysql數(shù)據(jù)出現(xiàn)亂碼應(yīng)該如何解決這篇文章怎么樣,是否有所收獲。如果想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。