1. 程式人生 > >mysql儲存中文字元亂碼

mysql儲存中文字元亂碼

在使用原生的JDBC的同學不知道有沒有遇到過類似的問題mysql中的中文亂碼的問題,首先表現就是我們儲存的時候引數明明使用的是中文,但是Java程式碼執行完成後資料庫中變成了  “???” 也就是中文亂碼。遇到這個彆著急,這裡有幾種方式我們排除:

1.先確定資料庫新建表的時候採用的儲存引擎是支援中文的:就是在建表的時候在後面跟上:engine=InnoDB default character set=utf8; 

下面是我的建表語句:

create TABLE user(
`id` INT(11) PRIMARY KEY auto_increment comment '主鍵',
`user_name` VARCHAR(20) not NULL DEFAULT '' comment '使用者名稱',
`age` int(4) not NULL DEFAULT 0 comment '年齡',
`phone_number` VARCHAR(11) NOt NULL DEFAULT '' comment '電話',
`sex` tinyint(4) not NULL DEFAULT 0 comment '性別',
`pass_word` VARCHAR(20) not NULL DEFAULT '' comment '密碼',
`birthDay` TIMESTAMP NOt NULL DEFAULT CURRENT_TIMESTAMP 
)engine=InnoDB default character set=utf8;
這裡我採用的是 InnoDB 儲存引擎,設定的編碼格式是 utf8;
2.這樣的話要是還是儲存的時候產生中文亂碼:
看看咱們的資料庫連線的時候設定的編碼問題:url=jdbc:mysql://127.0.0.1:3306/servlet?useUnicode=true&characterEncoding=utf8
在建立資料庫的連線的時候,需要設定這一句話,資料庫才是在連線時使用的我們自定義的編碼格式。(我就是這裡出的問題)

3.要是以上的兩種方式都不行,還有第三種問題:
在新增引數的時候加上 getBytes("ISO-8859-1"), "UTF-8")
這句話就是說把位元組流以utf8格式進行編碼儲存

4.要是還不行:那就去修改mysql的安裝路徑下的檔案:
編輯/etc/my.cnf ,在[mysql]段加入default_character_set=utf8;

應該問題不大了。多試試,要是get/post提交的話,還要考慮傳輸過程中的亂碼問題。

相關推薦

mysql儲存中文字元亂碼

在使用原生的JDBC的同學不知道有沒有遇到過類似的問題mysql中的中文亂碼的問題,首先表現就是我們儲存的時候引數明明使用的是中文,但是Java程式碼執行完成後資料庫中變成了  “???” 也就是中文亂碼。遇到這個彆著急,這裡有幾種方式我們排除: 1.先確定資料庫新建表的時

解決mysql儲存中文資料亂碼

1、到安裝目錄修改my.ini檔案, 將檔案中下面的變數改成如下[mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 重新啟

mysql是我們專案中非常常用的資料型資料庫。但是因為我們需要在資料庫儲存中文字元,所以經常遇到資料庫亂碼情況。下面就來介紹一下如何徹底解決資料庫中文亂碼情況。

mysql是我們專案中非常常用的資料型資料庫。但是因為我們需要在資料庫儲存中文字元,所以經常遇到資料庫亂碼情況。下面就來介紹一下如何徹底解決資料庫中文亂碼情況。 1、中文亂碼 1.1、中文亂碼 create table user(name varchar(11)); # 建立user表

myeclipse連線mysql生成資料表時中文字元亂碼或問號(解決方法)

出現這個問題有以下三步解決思路: 1. 檢查myeclipse的編碼格式 windows---->Preferences---->general---->Workspace,右側視窗Text file encoding,選擇Other,改變為UTF-8。 此時重新整理專案,看能否正常寫

解決C++連線MySQL資料庫插入和獲取記錄中文字元亂碼問題

字元編碼真是個頭痛的問題,以前一直不放在心上,現在用到了才發現真的麻煩。 花了將近一天的時間終於達到目的。 測試環境VS2015+MYSQL5.5,各種編碼的具體說明就不講了,自行百度。 1、讀取資料亂碼問題: vs專案下,預設編碼Unicode,但我的資料庫預設utf

MySQL查詢中使用Concat關鍵字來拼接中文字元亂碼(不同的資料型別拼接)解決方式

在MySQL中使用Concat來拼接兩種資料型別的欄位時就會出現亂碼。按照一下的辦法就可以解決這樣的問題。 舉例: concat('數量:',CONVERT(欄位名,char),) SELECT CO

mysql中採用concat來拼接中文字元亂碼解決方式

mysql concat亂碼問題解決 concat(str1,str2) 當concat結果集出現亂碼時,大都是由於連線的欄位型別不同導致,如concat中的欄位引數一個是varchar型別,一個是int型別或doule型別,就會出現亂碼。 解決方法:利用mysql的字串轉換

JSP Servlet JDBC MYSQL資料庫中文字元顯示為亂碼

這個過程中最終顯示為亂碼,是因為整個過程中字元編碼不統一導致。 要解決該問題,就是統一字元編碼。一般情況統一用UTF-8。 下面以UTF-8為例,解決中文字元顯示為亂碼 1.Input 文字編輯框一般接收GB18030編碼的字元 所以需要在Servlet獲取資料之前將Req

my.ini 檔案 解決mysql無法儲存中文字元問題

這個my.ini檔案是在mysql檔案目錄下直接找到的,本來想改my.ini檔案中的內容。結果在網路上到處找都沒有找到,如果你找到my_default.ini,修改完畢之後可以將其直接改名為my.ini,然後放在mysql檔案一級目錄下直接使用。具體位置: showl

關於QT呼叫MFC動態庫時傳遞中文字元亂碼問題

凡是亂碼,一定是解碼方式不對,在此做個小小的總結。 MFC CString和QT QString都採用unicode編碼 MFC中的char *採用GBK編碼,QT中的char *採用UTF-8編碼,這裡關於字元的編碼,有個規律就是和原始碼檔案儲存的編一致。    

中文字元亂碼問題的解決方法

                         中文字元亂碼問題的解決方法   轉載:http://blog.chinaunix.net/uid-26

URL編碼解決中文字元亂碼(encodeURIComponent和decodeURIComponent)

1、encodeURIComponent 轉義除了字母、數字、(、)、.、!、~、*、'、-和_之外的所有字元(可看下錶的非轉義字元更清晰)。 注意:為了避免伺服器收到不可預知的請求,對任何使用者輸入的作為URI部分的內容你都需要用encodeURIComponent進行轉義。 var x

mysql 儲存 特殊字元 Emoji 出錯。

Incorrect string value: '\xF0\x9F\x90\xA3' for column 'name' 這個問題,原因是UTF-8編碼有可能是兩個、三個、四個位元組。Emoji表情或者某些特殊字元是4個位元組,而Mysql的utf8編碼最多3個位元組,所以

更改Tomcat字元編碼設定及解決post請求中文字元亂碼

我遇到這個問題的時候是在做一個第三方支付介面的時候,在回撥函式中,解碼URL的時候怎麼解都不好使,解出來是亂碼的問題,搞了半天沒解決,百度找到了另一種方法。 這是第一種方法 new String(getURLDecoderString(json).getBytes("IS

寫入MYSQL資料庫中文出現亂碼問題

在用java向資料庫寫入資料時出現中文亂碼問題 出現亂碼問題一般是編碼的格式不一致問題導致的,如工程專案的編碼為UTF-8而資料庫的編碼為gbk或其他編碼,還有就是連線編碼 1.這裡以把所有編碼設為UTF-8為例,首先是eclipse的編碼,window>

mpdf-html轉PDF,中文字元亂碼、加粗問題

$defaultConfig = (new ConfigVariables())->getDefaults(); $fontDirs = $defaultConfig['fontDir']; $defaultFontConfig =

centOS7 下mysql插入中文字元報錯

在剛裝完mysql,就建立了資料庫abc,然後新建一個abc表,插入英文沒有問題,但是插入中文就有問題,會報錯: ERROR 1366 (HY000): Incorrect string value: '\xE4\xBD\x99\xE9\x93\xB6...'  應該是資料

解決ThinkPHP中以Get方式提交中文字元亂碼

接觸thinkPHP還沒幾天,都還沒入門呢,因為公司專案非常著急,自己也對thinkPHP很有興趣想借機會提高一下,就著急的用thinkPHP開始了,當然是遇到了非常多的問題,不過還好通過朋友gi

mybatis操作mysql資料庫中文出現亂碼的問題

電腦重灌後,重新安裝了mysql,今天啟動專案往資料庫裡插入資料,結果中文都變成了???,原本以為是資料庫連線沒有寫上編碼‘useUnicode=true&characterEncoding=utf-8’,後來發現是重灌mysql時編碼錯誤。找到mysql安

Mysql 插入中文字元變成問號的問題

目前遇到的解決辦法之一: 先關閉MySql服務, 然後,找到MySql的資料目錄 C:\ProgramData\MySQL\MySQL Server 5.6\my.ini 檔案,開啟找到charac