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並不兼容。