久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何解決mysql導入文件中文亂碼的問題

138次閱讀
沒有評論

共計 5300 個字符,預計需要花費 14 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

丸趣 TV 小編給大家分享一下如何解決 mysql 導入文件中文亂碼的問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

mysql 導入文件中文亂碼的解決辦法:首先創建數據庫并制定編碼;然后在導入數據庫文件之前,制定編碼 set names utf8 即可。

繼續昨天的問題,數據庫配置好后,查詢表發現中文亂碼了,看了網上的幾個方法也沒解決。
感覺是導入的 sql 文件問題,那么逆向的思考,用命令創建個數據庫,添加些數據,然后導出來看看什么情況。
向表內插入數據的時候發現報錯:
ERROR 1366 (HY000): Incorrect string value: \xE6\xB5\x8B\xE8\xAF\x95 for column bookname at row 1

如何解決 mysql 導入文件中文亂碼的問題

如何解決 mysql 導入文件中文亂碼的問題

如何解決 mysql 導入文件中文亂碼的問題

如何解決 mysql 導入文件中文亂碼的問題

果斷再改,通過命令:alter table book change bookname bookname varchar(32) character set utf8;
改完后也不看了,直接插數據試試:

insert into book
(id,bookname,size,price)
values
(1, 測試 ,2,3)
;

插入成功,查看數據是不是還中文亂碼,發現并不亂碼了:

如何解決 mysql 導入文件中文亂碼的問題

那么開始進行下一步,導出 sql 文件,進入到 mysql 的 bin 目錄下,開始通過命令導出,這個過程需要輸入密碼

E:\mysql-5.7.28-winx64\bin mysqldump -u root -p test test.sql
Enter password: *******

導出的文件,表的編碼格式 utf8,與之前導入文件的比較并看不出什么問題。
那么,就是之前導入文件的過程,創建數據庫的過程除了問題,查看之前導入的 mydb.sql 的 mydb 數據庫結構,果然不對:

mysql use mydb;
Database changed
mysql show variables like character_set_database 
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| character_set_database | latin1 |
+------------------------+--------+
1 row in set, 1 warning (0.00 sec)

遂修改之:alert database mydb character set utf8;
然后再查看表的編碼,發現有鬼:

mysql show create table sp_user_cart;
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| sp_user_cart | CREATE TABLE `sp_user_cart` (`cart_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 涓婚敭 ,
 `user_id` int(11) unsigned NOT NULL COMMENT 瀛﹀憳 id ,
 `cart_info` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 璐? 墿杞﹁? 鎯呬俊鎭? 紝浜岀淮鏁扮粍搴忓垪鍖栦俊鎭 ,
 `created_at` timestamp NULL DEFAULT NULL,
 `updated_at` timestamp NULL DEFAULT NULL,
 `delete_time` timestamp NULL DEFAULT NULL,
 PRIMARY KEY (`cart_id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8

utf8mb4_unicode_ci 這個東西是怎么出來的 …
然后改了編碼,查詢,還是不對,想起來之前創建數據庫,可能是忘記設置編碼,導入的東西本來就亂碼了,也或者是 my.ini 配置不對,從頭開始用正確流程試試吧。

先查看數據庫的編碼設置:show variables like character%
發現很混亂:

mysql show variables like character% 
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | D:\mysql-5.7.29-winx64\share\charsets\ |
+--------------------------+----------------------------------------+

開始改,通過一系列的 set
set character_set_client = utf8;
得到結果

+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | D:\mysql-5.7.29-winx64\share\charsets\ |
+--------------------------+----------------------------------------+

創建數據庫并制定編碼:CREATE DATABASE test2 CHARACTER SET utf8 COLLATE utf8_general_ci;
使用:use test2
在導入數據庫文件之前,制定編碼 set names utf8;
導入:source F:xxxx\xxxx\mydb.sql;
不算漫長的等待之后,查詢,不亂碼了

mysql select * from sp_role;
+---------+---------------+---------------------------------------------------------------------------------------------
------------------------------------------------------+-----------------------------------------------------------------
------------------------+--------------------+
| role_id | role_name | ps_ids
 | ps_ca
 | role_desc |
+---------+---------------+---------------------------------------------------------------------------------------------
------------------------------------------------------+-----------------------------------------------------------------
------------------------+--------------------+
| 30 | 主管 | 101,0,104,116,115,142,143,144,121,122,123,149,102,107,109,103,111,129,130,134,135,138,139,14
0,141,112,147,125,110,131,132,133,136,137,145,146,148 | Goods-index,Goods-tianjia,Category-index,Order-showlist,Brand-in
dex | 技術負責人 |
| 31 | 測試角色 | 101,0,104,105,116,117,115,142,143,144,121,122,123,149,103,111,129,134,138,112,147
 | Goods-showlist,Goods-tianjia,Category-showlist,Order-showlist,Or
der-dayin,Order-tianjia | 測試角色描述 |
| 34 | 測試角色 2 | 0,105,116,142,143,122
 | NULL
 | 測試描述 12 |
| 39 | 大發送到 | 101,0,104,105,116
 | NULL
 | 阿斯蒂芬 |
| 40 | test | 102,0,107,109,154,155,145,146,148
 | NULL

實戰項目可以繼續進行,遂生法喜。

以上是如何解決 mysql 導入文件中文亂碼的問題的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

向 AI 問一下細節

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-18發表,共計5300字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 平谷区| 临西县| 汝城县| 留坝县| 天津市| 凭祥市| 新竹县| 修武县| 大厂| 江源县| 枞阳县| 颍上县| 龙陵县| 广丰县| 洮南市| 惠安县| 宣武区| 万源市| 滁州市| 海林市| 樟树市| 高阳县| 长沙县| 连平县| 麻栗坡县| 安塞县| 中山市| 绵竹市| 漾濞| 长子县| 新竹市| 门源| 周宁县| 鹤岗市| 闻喜县| 平果县| 扬中市| 固原市| 桂平市| 西充县| 金堂县|