[英]Cannot convert ISO8859-1 to cyrillic in ruby
我有文字“ÐоÑÑи½½½½” ,我想將其轉換為西里爾字母。 2cyr.com表示這是ISO8859-1格式。 我試過了
"ÐоÑÑинаÑ".force_encoding("ISO8859-1").encode("UTF-8")
但是它返回=> "Ã\Â\Ã\¾Ã\Â\Ã\Â\Ã\¸Ã\½Ã\°Ã\Â\"
我應該怎么做才能使最終詞成為“Гостиная”
相反。 您的字符串是以下結果的結果:
str = "Гостиная".force_encoding('ISO8859-1').encode('UTF-8')
#=> "Ð\u0093оÑ\u0081Ñ\u0082инаÑ\u008F"
puts str
#=> ÐоÑÑинаÑ
要還原它,請使用:
str.encode('ISO8859-1').force_encoding('UTF-8')
#=> "Гостиная"
當然,這僅在格式錯誤的字符串保留完整的情況下才有效(它包含多個不可見/無法打印的字符)。
最好的辦法是切換方法的順序:
puts "ÐоÑÑинаÑ".encode("CP1252")
#=> �о��ина�
您的字符串仍然包含殘破的字符,但這很可能是原始字符串固有的。 像這樣的在線工具給出了相同的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.