我有文字“ÐоÑÑинає,我想把它转换成西里尔文。 2cyr.com说这是ISO8859-1格式。我试过了
"ÐоÑÑинаÑ".force_encoding("ISO8859-1").encode("UTF-8")
但它返回=>
"Ã\u0090Â\u0093Ã\u0090¾Ã\u0091Â\u0081Ã\u0091Â\u0082Ã\u0090¸Ã\u0090½Ã\u0090°Ã\u0091Â\u008F"
我应该怎样做才能使最后一句话成为“Гостиная”
答案 0 :(得分:2)
反过来说。你的字符串是:
的结果str = "Гостиная".force_encoding('ISO8859-1').encode('UTF-8')
#=> "Ð\u0093оÑ\u0081Ñ\u0082инаÑ\u008F"
puts str
#=> ÐоÑÑинаÑ
要还原它,请使用:
str.encode('ISO8859-1').force_encoding('UTF-8')
#=> "Гостиная"
当然,这只适用于格式错误的字符串保持不变(它包含几个不可见/不可打印的字符)。
答案 1 :(得分:0)
你能做的最好的就是改变方法的顺序:
puts "ÐоÑÑинаÑ".encode("CP1252")
#=> �о��ина�
您的字符串仍包含损坏的字符,但这可能是原始字符串固有的。像this one这样的在线工具可以得到相同的结果。