ruby程式中文亂碼問題解決方法

2021-04-13 10:55:23 字數 1804 閱讀 4615

環境:

。mysql 5.0,mysql的環境配置為utf8,建表也全部使用utf8。

。ie6.0、firefox 2.0.2

。ruby 1.8.5 + rails 1.2.3

錯誤現象:

。用mysql query browser檢視mysql資料,中文顯示正常。

。頁面顯示為亂碼,原來是中文的地方都變成了乙個長方塊

。手工調整瀏覽器的頁面編碼,可以使用頁面正常顯示。但重新整理後又是亂碼。

解決方法:修改config/database.yml,加入一句編碼設定如下。

development:

adapter: mysql

database: chensite_development

encoding: utf8

username: root

password: 

123456

host: localhost

(這個我試了,程式中的中文亂碼)是這樣的)這時從資料庫讀取的資料顯示正常了,但*.rhtml裡的原中文卻顯示變成了亂碼。據說將*.rhtml用記事本重新儲存為utf-8格式可以解決,而我是用radrails,右擊專案,在它的屬性頁的文字檔案編碼

(info)項的text file encoding改為utf-8。這時*.rhtml檔案裡的中文會變成亂碼,所以最好備份一下,然後將備份的檔案內容乙個個的複製貼上過來。致此終於完美解決了中文亂碼問題。

注:2。有些文章說要同時在*.rhtml裡加上如下編碼設定。我發現這一句可加可不加,對頁面編碼顯示沒有任何影響。

3。還有的人說修改environment.rb加入兩行 $kcode = 'u' 和 require 'jcode' 。這裡似乎沒有必要。也許這是老版rails的解決方法。

4。有的人說在建表的時候不能用innodb,但我的建表語句如下,是用innodb。沒有發現問題。

create table modules (

id             

intnot 

null

auto_increment,

..........

expanded       tinyint(

1)    

default0,

primary key (id)

)engine

=innodb default charset

=utf8;

def configure_charsets

# @response.headers["content-type"] = "text/html; charset=utf-8"

suppress(activerecord::statementinvalid) do

activerecord::base.connection.execute 'set names utf8'

endend

end5、關於中文字串的問題可以用

require 'iconv' 庫, 然後執行

iconv.conv("utf8","gb2312","string") #把字元由gb2312轉換為utf8

6、又看到乙個設定編碼的方法(不過還沒試過,先記下來)

在config/enviroment.rb 最後面增加一行

$kcode="utf8"  

JSF spring中文輸入亂碼問題解決方法

在inputtext中輸入中文,然後在輸出,顯示為亂碼。解決方法 我是使用的jsf spring2.0 hibernate3所以解決這個問題不是很複雜.在頁面上新增 xml page contenttype text html charset utf 8 主要是在工程web.xml中新增了sprin...

Linux Oracle 中文亂碼問題解決

一 若在oracle中有漢字,在資料庫中查詢出現亂碼很可能是由於資料庫客戶端與伺服器的字符集不一致導致的,這時就應該先分別檢視下資料庫伺服器和客戶端的字符集 具體命令如下 1.檢視伺服器端的字符集 sql select userenv language from dual 2.檢視客戶端的字符集 e...

putty中文亂碼問題解決

putty中文亂碼問題解決 用putty從windows xp連線ubuntu server或者freebsd系統,其中中文部分亂碼,經常遇到這個問題的時候,會覺得很鬱悶。現共享一些解決這個問題的方法。方法一 如果經常使用,把這些設定儲存在session裡面.儲存方法 再做完以上操作的同時選中以下兩...