【发布时间】:2014-03-10 00:12:57
【问题描述】:
我正在努力在 Rails 中找到可以将 UTF-8 代码转换为其可显示值的正确方法。
在我的例子中,如果可能的话,它会将一些用户输入(如“John%20Da%F1e”)转换为“John Dañe”。
目前,我有以下内容:
unescaped_name = CGI::unescape(params[:name]) # this turns "John%20Da%F1e" into "John Da\xF1e"
@q = I18n.transliterate(unescaped_q) #this yields an 'invalid byte sequence in UTF-8' error
本质上,我正在尝试从“John%20Da%F1e”(已经以 UTF-8 编码)到“John Dañe”。
我尝试过的一件事是
.encode('UTF-8', 'binary', invalid: :replace, undef: :replace, replace: '')
但这会将 ascii(% 到 \x)替换为“John Dae”。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 utf-8