簡體   English   中英

Ruby On Rails和UTF-8

[英]Ruby On Rails and UTF-8

我有一個帶有SayController的Rails應用程序, hello操作和視圖模板say/hello.html.erb 當我添加一些西里爾字母(如“ю”)時,出現錯誤:

SayController#hello中的ArgumentError

invalid byte sequence in UTF-8

頭:

{"Cache-Control"=>"no-cache",
 "X-Runtime"=>"11",
 "Content-Type"=>"text/html; charset=utf-8"}

如果我嘗試用嵌入式Ruby寫這封信,

<%= "ю" %>

我沒有收到任何錯誤,但是它以黑色正方形(?)而不是此字母顯示一個問號。

我使用Windows 7 x64,Ruby 1.9.1p378,Rails 2.3.5,WEBrick服務器。

導致此錯誤的可能原因是,包含西里爾字母的文件未以UTF8編碼,但可能以某些俄語編碼(如KOI8)編碼。 這將導致字符無法在UTF8中解釋(正確的是!)。

因此,請仔細檢查您的文件是否已正確編碼為UTF8。

在your_app / config / initializers下創建一個初始化器文件(例如,encoding_fix.rb),其內容如下:

Encoding.default_internal = Encoding::UTF_8 if RUBY_VERSION > "1.9"
Encoding.default_external = Encoding::UTF_8 if RUBY_VERSION > "1.9"

這會將編碼設置為utf8。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM