MYSQL 表中漢字寫入或欄位賦值時亂碼情況排誤,mysql賦值
-- 當修改欄位值,或是直接寫入時,漢字變成亂碼情況 ,【可注意一下資料庫名,記得修改】-- 當字元順序對漢字不相容時,可能直接導致亂碼情況發生。 最好做到庫、表、欄位(字元類型)定序是否一致-- eg.在某庫下建了暫存資料表沒有指定字元定序,下遊會使用時,將暫存資料表中的str欄位值賦值給另外一個庫表,可能會出現亂碼-- 未指定排序建表時,則表的定序是其庫的定序-- 1. 庫層級SELECT * -- DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME 關注列 -- utf8 utf8_general_ci FROM information_schema.`SCHEMATA` WHERE SCHEMA_NAME = 'AdDataCenter';-- 2. 表層級SELECT * -- TABLE_COLLATION 關注列 -- utf8_general_ciFROM information_schema.`TABLES` tWHERE t.`TABLE_SCHEMA` = 'AdDataCenter'-- 3. 欄位層級SELECT * -- COLLATION_NAME 關注列 -- utf8_general_ciFROM information_schema.`COLUMNS` AS cWHERE c.`TABLE_SCHEMA` = 'AdDataCenter'
mysql 列表裡文字內容都是亂碼
jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf8 再操作就不會亂了
消除亂碼
在mysql_connect後面加一句SET NAMES UTF8,即可使得UTF8的資料庫消除亂碼,對於GBK的資料庫則使用SET NAMES GBK,代碼如下:
$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_query("SET NAMES 'GBK'");
資料庫字元集為utf-8
串連語句用這個
mysql_query("SET NAMES 'UTF8'");
mysql_query("SET CHARACTER SET UTF8");
mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");
還有個方法就是,如果你自己的機器的話,可以更改MYSQL字元集,一般在MYSQ4和MYSQL5這兩個版本中有效。
參考資料:百度文庫
mysql資料庫顯示簡單中文漢字就亂碼的問題助
亂碼很難轉換成正常的 估計是你的資料庫有問題 你排除一下吧
① 首先把MySQL的服務停掉 在運行視窗輸入:net stop mysql
② 把伺服器和用戶端的字元集改成自己想用的字元集:GB2312或是utf8等……
具體操作為:開啟mysql安裝目錄下的my.ini;
找到default-character-set,將其改為自己想用的字元集:GB2312或是utf8等……,要注意的是這裡有兩個default-character-set,用ctrl+f定位在檔案最前面輸入default就會找到,都要改過來;
③ 重啟MySQL伺服器,在運行視窗輸入:net start mysql
④ 最重要的是一點是,到這裡我們已經能夠解決亂碼問題了,可問題是我們依然還會出現亂碼問題,這是因為我們現在的表被建立的時候用的是預設的字元集(latin1),所以這時候我們要把表刪除,然後重建就可以了