1
A
回答
0
假設問題真的是象你所說的,不只是一個誤會。
我爲此付出了努力。這並不漂亮。這解析字符串並使用pack
打包相關字節。
"foo \\303\\255 bar".gsub(/(\\\d{3})+/) do |match|
match[1..-1].split("\\").map{ |octet| octet.to_i(8) }.pack("c*")
end.force_encoding("UTF-8")
短得多的版本使用eval
,但它總是值得嘗試,以避免eval
如果可以的話,因爲如果使用不當,它有巨大的安全隱患。鑑於我們正在驗證我們eval
「荷蘭國際集團在這裏是什麼,我會繼續前進,說這可能是安全做到這一點的格式:
"foo \\303\\255 bar".gsub(/(\\\d{3})+/) { |m| eval('"' + m + '"') }
1
它不是字符串中真正的8個字符,而是2個字節。我不知道你想要\ 303 \ 255展現出來,因爲我,但如果你把
# encoding: utf-8
在你的.rb文件的頂部紅寶石將使用UTF-8。
如果您在使用Ruby on Rails,你可以嘗試添加以下兩行到config/environment.rb
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
+0
上面的編碼沒有工作,eval做了,謝謝Jonas – kaydara
相關問題
- 1. 字符串表示
- 2. 字符串表示
- 3. Ruby:字符串在數組中顯示爲字符串
- 4. 如何在C#中表示(字符串,字符串[],字符串[])#
- 5. 顯示字符串列表
- 6. lambda的字符串表示
- 7. C#字符串ASCII表示
- 8. Python3字符串表示
- 9. 字符串表示值
- 10. XPathSelectElements =>字符串表示
- 11. C - time_t字符串表示
- 12. ruby如何在內部表示字符串?
- 13. Ruby中的直接字符串表示法
- 14. ruby:將二進制字符串表示爲Bignum
- 15. Ruby/Rhomobile:解析目錄字符串表示
- 16. Ruby字符串轉義字符
- 17. 圖了Ruby的字符串
- 18. Ruby:字符串不匹配
- 19. Ruby字符串可變性
- 20. Ruby:字符串分支器
- 21. Ruby字符串ASCII操作?
- 22. Ruby - 刪除字符串?
- 23. Ruby unescape HTML字符串
- 24. < > Ruby字符串
- 25. Ruby字符串翻譯
- 26. ruby字符串方法
- 27. Ruby的字符串對比
- 28. 分類Ruby的字符串
- 29. ruby字符串格式化
- 30. 用Ruby解析字符串
有什麼編碼? UTF-8? –
是的,編碼是UTF-8 – kaydara
你的意思是你有字符串:'str =「\」\\ 303 \\ 255 \「」'(即斜槓真的*在字符串中?)。如果有的話,你必須將它們提取出來並將它們'Array#pack'打包成真實的字符。 – d11wtq