将unicode编码为latin1,用类似的字符替换不可用的字符

时间:2015-11-25 18:31:11

标签: ruby utf-8 character-encoding iso-8859-1

当没有对应物时,角色通常被替换为单个角色,通常为"?"。有没有办法对字符进行编码,如果缺少,则使用类似的字符,例如"ł" - > "l",而不是问号?我知道这两件事都可以独立完成。我想知道是否有一个结合两者的解决方案。

1 个答案:

答案 0 :(得分:1)

以下是使用主动支持的示例,但如果不适合您,还有其他解决方案可以进行音译:

require 'active_support'
"łé".encode(Encoding::ISO_8859_1, fallback: proc{|c| I18n.transliterate(c)})