ruby1.9 mysql中文亂碼解決方案

ruby  查詢數據庫 導出中文亂碼的問題  網上的方案有很多種

最普遍的就是   dbh.query('set names utf8;')

添加此語句的作用是   將數據庫中的所有的字符集 定義爲 utf-8(查看數據庫字符集方式:  mysql> show variables like '%char%';)

我按照這樣操作後,導出的中文瞬間就不亂碼了,但是出現了下個問題

 在ruby1.9.3版本中   我的數據庫查詢的中文爲 "導航頁"  p後顯示的格式爲\xE5\xb5.....諸如此種

手動  p "導航頁"   結果爲 "\u5BFC\u822A\u9875"

兩者並不等同

解決方案:dbh.query('set names gb2312;')

後續用   Iconv.iconv("utf-8","gb2312",str)   或 str.encode   或 str.force_encoding  進行轉碼最終結果得到  手動p中文 一樣的效果


總結:dbh.query('set names utf8;')   至於此處的utf-8 應該和數據庫屬性的字符集 相同,否則強制轉碼爲其他形式後,與ruby並不兼容。



發佈了19 篇原創文章 · 獲贊 4 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章