小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Navicat for MySQL中文亂碼問題

 JhouShuai 2016-03-21

使用Navicat存儲中文數(shù)據(jù)出現(xiàn)亂碼或者空白的問題。經(jīng)過一番折騰終于得到解決。

表my_chat設計如下:


在數(shù)據(jù)庫chatroom上右擊打開console控制臺,輸入SHOW VARIABLES LIKE '%character_%'; 

可以看到MySQL 相關編碼的設置,全部修改為utf8后如下:


若編碼不統(tǒng)一可以參照這篇文章修改:MySQL 編碼設置http://eagletff.blog.163.com/blog/static/116350928201171543523558

1、編輯MySQL 的配置文件


MySQL 的配置文件Windows下一般在系統(tǒng)目錄下或者在MySQL 的安裝目錄下名字叫my.ini,可以搜索,Linux下一般是 /etc/my.cnf

--在 [mysqld] 標簽下加上三行
default-character-set = utf8
character_set_server = utf8
lower_case_table_names = 1        //表名不區(qū)分大小寫(此與編碼無關)

--在 [mysql]  標簽下加上一行
    default-character-set = utf8

--在 [mysql.server]標簽下加上一行
    default-character-set = utf8

--在 [mysqld_safe]標簽下加上一行
    default-character-set = utf8

--在 [client]標簽下加上一行
    default-character-set = utf8


2、重新啟動MySQL 服務
Windows可在服務管理器中操作,也可使用命令行:
net stop mysql 回車
net start mysql 回車
服務名可能不一定為MySQL ,請按自己的設置

Linux下面可是用 service mysql restart

如果出現(xiàn)啟動失敗,請檢查配置文件有沒有設置錯誤

開始的時候是author與emotion字段中文亂碼:


按上述方法,我在自己的my.ini中只找到了[client]和[mysql]兩項,按上述方法修改后,保存的時候提示含有unicode字符,于是我另存,替換,但是

在重新啟動MySQL 服務的時候一直失敗。

最終發(fā)現(xiàn)該配置文件重新改回ANSI編碼后,再加入上述修改,可正常啟動MySQL 。

新的問題出現(xiàn):字符類型為varchar的字段中文顯示為空白(author和emotion字段),


此法不奏效。

網(wǎng)上找到的第二種方法:Navicat for MySQL 顯示中文亂碼解決辦法
http://blog.163.com/chenyao_2000/blog/static/1280109302011431476629/


最近遇到一個問題,用Navicat for MySQL 打開數(shù)據(jù)庫時全都顯示的是亂碼(在用程序代碼插入數(shù)據(jù)之前確保字符不是亂碼),遇到問題就的尋求解決之道,百度了好長時間也沒解決,網(wǎng)上那些解決辦法都不適合我的問題,網(wǎng)上的大多數(shù)解決方法是在navicat里右擊一個連接,選擇連接屬性,切換到高級選項卡,去掉“使用MySQL 字符集”前的對勾,在編碼里選擇utf-8,這種方法對于部分問題可能適合,但是我的亂碼問題依然存在,于是乎我又將utf-8改稱gbk,gb2312,全都過問題依然粹依舊。
后來跟一個編程的老程序員請教了一下,他說可能是MySQL 的配置文件有問題,就是在MySQL 的安裝目錄下的my.ini文件里的默認編碼有問題,將my.ini文件的這兩處的默認編碼
==========================================
[mysql]
default-character-set=utf8 <------
==========================================
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.0/"
#Path to the database root
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8 <------
===========================================
箭頭所指的地方確保為utf8(注意不是utf-8),navicat 里的使用的是MySQL 字符集(此時不用再選擇utf-8編碼), 問題才得以解決!

上述方法后半部分跟第一種方法一樣,他這里解決了,但是我沒能實現(xiàn)。

反而是利用紅色部分的方法找到了解決辦法。

在navicat里右擊一個連接,選擇連接屬性,切換到高級選項卡,去掉“使用MySQL 字符集”前的對勾,在編碼里選擇Default

我在編碼里選擇utf8之后,


查看表時,又出現(xiàn)了空白


最終解決辦法是,在最后編碼的地方不是選擇utf8而是Default。熟悉的中文就回來了!




總結:一般的解決辦法兩種:

1、修改MySQL 的配置文件在相對應的位置添加如下代碼
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8

重啟服務。

但是可能導致無法重啟,可以把配置文件編碼修改為ANSI試試。

2、

在navicat里右擊一個連接,選擇連接屬性,切換到高級選項卡,去掉“使用MySQL 字符集”前的對勾,在編碼里選擇Default

也有人編碼的地方可能是“Current Windows Codepage”,此法不修改my.ini。


注:

要保證不亂碼,就必須將三個編碼統(tǒng)一:一是網(wǎng)頁自身的編碼,二是HTML里指定的編碼,三是PHP告訴Mysql的編碼(包括character_set_client和character_set_results)。
第一和第二個編碼,如果使用DW之類的編輯器寫的網(wǎng)頁,通常是一致的,但用記事本寫的網(wǎng)頁,有可能不一致。
第三個編碼,需要手工通知Mysql。這步可以通過在PHP里使用mysql_query("set names characterX")來實現(xiàn)。(出自:PHP和MySQL的編碼問題


最后貼幾個比較有參考意義的文章:


MySQL 編碼設置 http://eagletff.blog.163.com/blog/static/116350928201171543523558

Navicat for MySQL 顯示中文亂碼解決辦法http://blog.163.com/chenyao_2000/blog/static/1280109302011431476629/

MySQL 中文亂碼解決      http://jingyan.baidu.com/article/e4d08ffdd9bd630fd2f60de6.html

MySQL插入中文顯示不了的問題     http://hi.baidu.com/yulewujixian/item/8a2e80ec9be075b52f140b23

PHP和MySQL的編碼問題 http://blog.csdn.net/martinkro/article/details/5352474

中文常用編碼方式(GBK,GB2312,Unicode) http://blog.sina.com.cn/s/blog_5ac88b350100c2bx.html

UNICODE,GBK,UTF-8區(qū)別 http://www.cnblogs.com/cy163/archive/2007/05/31/766886.html

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多