MySQL 升級後續 - 亂碼、編碼問題

转载 2007年10月16日 01:15:00
原贴:http://twntwn.info/blog/ajer001/archives/1389

MySQL 升級後續 - 亂碼、編碼問題

| Posted at 九月 12, 2006 | 2個迴響 | 沒有引用 | 1793 reads. | Size: L, M, S |
| Under Service Soft. |

MySQL 升級到 4.1.x 以上的版本之後,會發現開始有個叫做連線校對的東西。因為從 4.1.x 之後,只剩下 UTF-8 一種編碼,連線校對只是看你的程式存進去的語言是什麼,最後都是用 UTF-8 來存。(這段有錯請指正!)

這 個時候,問題就來了,因為 4.0.x 之前的版本,通常預設的編碼都是 latin1,而把 latin1 編碼的檔案放進去,通常會有三種後果,一種是 phpMyAdmin 中看是正常,但是程式內卻是一堆亂碼;另一種就是 phpMyAdmin 中看是亂碼,但是程式內卻正常;當然也有的人更雖,前後都死。

其實這都是因為編碼不同的關係。最好的方法,就是把原本的資料、新的 MySQL 全部弄成 UTF-8,未來比較不會有問題,一勞永逸。

一開始我升級後用很鴕鳥的方式,把預設編碼改成了 latin1,想說正常就好,不過昨晚清空 Gallery2 快取後,才發現整個 Gallery2 全部都變成亂碼了,後台卻很正確。查了整個晚上,我暴氣了,決定全部把資料都轉為 UTF-8。

首先,唯一要確定的,是備份下來的 .sql 一定必須是正確沒問題的。最好的方法當然是升級前就備份下來,或者你也可以嘗試各種連線校對的編碼,看哪個匯出的 .sql 是可以在編輯程式內正確讀取的(最重要的當然是中文的部份)。

確定 OK 後,用編輯器打開你的 .sql,如果你是 MySQL 4.1.x 以上備份下來的,應該裡面會有很多個「CHARSET=latin1」,用取代的功能,全部改成「CHARSET=utf8」,這樣等等匯入之後,預設的編碼就會變成 UTF-8 了。好了之後,存檔上傳到主機。 

 

接下來,利用 Mark 教的 方法,來匯入資料:

首先新增你要上傳的那個資料庫,將編碼選為「utf8_general_ci」。然後到主機下指令:

mysql  -uname  -ppassword  -Ddbname  --default-character-set=latin1  <  XXX.sql

註一:黑色粗體字分別是 mysql 的 username、password、db name、sql dump file name。
註二:--default-character-set=XXX,一定要加,並且換成你當初 dump 下來的編碼,通常可能是 latin1。

這樣就完成了,到你的 phpMyAdmin 去看看,應該可以正常顯示了。然後再到程式看看、發表看看,應該都沒問題了才對。




 

所有編碼問題

在我们进行嵌入式开发中,会碰到人机界面中液晶屏的应用问题,对于没有字库的液晶屏(比如现在大量应用的TFT),需要自己设计字库,也就是利用软件提取字符或汉字的点阵数据,这就会在程序中涉及到字符的点阵数据...
  • tuolaji8
  • tuolaji8
  • 2015年07月22日 10:02
  • 428

Response下載文件亂碼問題處理

特殊字符亂碼問題如出現&和空格之類的字符 context.Response.ContentType = "application/octet-stream";//下載跟這個關係不大,默認就這樣寫了 ...
  • losedguest
  • losedguest
  • 2017年11月02日 16:08
  • 68

修正VS2010剪貼程式碼時中文夾雜亂碼問題

Abstract: VS2010 RTM has a bug.  When copying code and pasting it to Word, Excel, Powerpoint, Outloo...
  • kobesdu
  • kobesdu
  • 2015年03月21日 10:29
  • 859

使用 shared_ptr 的一個問題代碼

代碼如下: #include #include #include class A { public: void Add(); void Delete(); ~A(); private: st...
  • CaspianSea
  • CaspianSea
  • 2015年09月24日 07:43
  • 1011

VS2013配置Caffe卷积神经网络工具(64位Windows 7)——建立工程

2014年4月的时候自己在公司就将Caffe移植到Windows系统了,今年自己换了台电脑,想在家里也随便跑跑,本来也装了Ubuntu可以很方便的配置好,无奈在家的风格是“娱乐的时候抽空学习”,所以移...
  • joshua_1988
  • joshua_1988
  • 2015年04月14日 22:16
  • 8514

如果JSON数据中有中文,输出Unicode编码,无法识别解决办法

NSLog+NSArray 问题 如果JSON数据中有中文,输出的是经过Unicode编码的内容,无法识别. 解决 定义NSArray和NSDictionary的分类,重写系统方法...
  • lichuanlong007
  • lichuanlong007
  • 2016年08月06日 09:58
  • 2119

mysql乱码问题完美解决篇(我用的perl其他语言类推可解)

最近在做sqlserver到mysql的数据迁移 无可避免的遇到了乱码问题  看了N多资料之后  终于解决了问题   并且对mysql的乱码问题解决找到了一个完整的套路 这里分享给大家,希望也能帮到你...
  • q383965374
  • q383965374
  • 2013年10月30日 18:53
  • 3609

IDEA使用--字体、编码和基本设置

IDEA这么高端的工具之前只是断断续续使用了一下,因为项目的开发都是在eclipse上,每次学习IDEA的使用都得上网搜索半天,今天自己整理一下,方便以后查阅。 IDEA版本15.0.4 字体 ...
  • qq_33863843
  • qq_33863843
  • 2017年03月10日 15:08
  • 204

jsonp跨域及rest接口实现

jsonp是json的一种模式,专门用来解决前端跨域请求数据的问题。它允许在服务器端生成script tags返回至客户端,通过javascript callback的形式来实现站点访问。     一...
  • nicolas_huan
  • nicolas_huan
  • 2017年03月28日 10:38
  • 317

javascript下漢字和Unicode編碼互轉代碼

近日在為網站做一資料功能,這些顯示在頁面上面的文字數據都是存放在js文件裏面的,由於這些js文件裏面的中文都是經過unicode編碼的,頁面上顯示是沒有問題的,問題是我做的網站是繁體中文,而js文件裏...
  • ljihe
  • ljihe
  • 2016年07月20日 22:01
  • 151
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL 升級後續 - 亂碼、編碼問題
举报原因:
原因补充:

(最多只允许输入30个字)