簡體   English   中英

無法將紅寶石中的ISO8859-1轉換為西里爾字母

[英]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.

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