A. 字符編碼:

尋烏ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創新互聯公司的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
使用命令行方式登陸到MySQL服務器, 建立一個數據庫,數據庫編碼設為UTF-8。此時,如果直接在命令行窗口使用insert語句插入中文,就遇到類似 ERROR 1406 (22001): Data too long for column 'name' at row 1 錯誤。乍一看,是字段長度引起的問題,但是實際是字符編碼的問題。可是嘗試以下解決方法:
1、在Linux中,使用終端方式登陸MySQL服務器,運行以下命令:
set names utf8;
該命令將終端的字符編碼設為了UTF-8。此后再插入數據庫中的內容都會按照UTF-8的編碼來處理。
注意:在Linux中,終端方式中直接插入中文內容,可能并不會出現1406錯誤,但是這時插入的數據
是按照系統的默認編碼進行處理。因此對編碼為UTF-8的數據庫,在顯示數據的地方可能會出現亂碼。
2、在Windows下,命令行窗口不支持UTF-8編碼,所以使用“set names utf8;”不會達到轉化中文的
效果。但是這個問題還是可以解決的:
(1)使用默認編碼建立數據庫。這種情況下就可以直接輸入中文了,但是相應的問題,就是會
失去UTF-8編碼的靈活性。特別是不利于軟件的國際化。
(2)放棄命令行窗口登錄MySQL,使用圖形化客戶端。客戶端工具可以MySQL的官方網站上找到。
B. Mysql配置文件:
“在my.ini里找到sql- mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'把其中 的STRICT_TRANS_TABLES,去掉,或者把sql- mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION注釋掉,然 后重啟mysql就ok了
1,創建table的時候就使用utf8編碼
舉個例子:
在每次創建表的時候都在最后加上 character set = utf8 就可以很好的支持中文。
2,修改已經有的table的編碼
當使用默認編碼創建了一個table的時候,是不能支持中文的,這時候使用如下語句對table_name進行修改:
此后再往這個table插入中文的時候,就可以正常存儲和讀取了,但不知道為什么之前的亂碼還是不能糾正,只能新插入的數據沒有問題。
[注意] 我google了一下,有些地方說這個命令也行,但是我測試以后并不行
alter table table_name charset=utf8; #這個語句并沒有讓table_name支持中文
支持插入中文的前提是:你的數據庫編碼和mysql連接所使用的字符集要相同,即:你的數據庫(comment)的字符集是GBK的,那么你在數據庫連接(mysql_connect)時要加上一句mysql_query('set
names
gbk');
這樣的話就不會出現中文插入時出現亂碼現象。UTF8字符集時與GBK同理。
還有疑問?
當前題目:mysql怎么加入中文 mysql怎么設置中文
當前路徑:http://www.yijiale78.com/article40/hhcjeo.html
成都網站建設公司_創新互聯,為您提供外貿建站、品牌網站建設、ChatGPT、Google、響應式網站、網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯