我想转换此字符串
"Nous travaillons \u00c3\u00a1 rendre"
到
Nous travaillons à rendre
但无法做到。我在字符串上尝试了force_encoding("UTF-8")
方法,但这也没有用。我的输出总是
"Nous travaillons á rendre"
如果我手动将\u00
替换为\x
"Nous travaillons \xc3\xa1 rendre"
但是gsub
似乎没有对此"Nous travaillons \u00c3\u00a1 rendre"
我正在使用ruby 1.9.3
答案 0 :(得分:1)
你有没有尝试过:“Nous travaillons \ u00E0 rendre”?
你想要的角色(带有坟墓的拉丁小写字母A)是一个单个 unicode角色。这意味着如果你正在使用\ u,你只需要一个转义序列,而不是你的问题。您正在混淆Unicode代码点(字符)和UTF-8编码的概念。
如果要在字符串中表示UTF-8编码,则应使用两个 \ x序列...如果要表示编码字符本身,则应使用一个< / strong> \ u sequence。
只有你错误地使用\ u才能使你不得不诉诸 force_encoding
答案 1 :(得分:0)
此后必须对字符串和强制编码进行编码。
"Nous travaillons á rendre".encode("Windows-1252").force_encoding("utf-8")
结果:
"Nous travaillons á rendre"