破碎的UTF-8字符串红宝石

时间:2010-05-24 13:46:00

标签: ruby string utf-8 character-encoding

在阅读文件时,只要我的文件中包含以下内容,我就会获得broken UTF-8 String error

través

如果我将其更改为正常e则可行。

解决这个问题的方法是什么?

只有在执行line.lstrp或任何其他功能时才会出现

错误。只需打印线条即可。

当我尝试将字符串与正则表达式匹配时,甚至会发生

问题。

1 个答案:

答案 0 :(得分:0)

显然,您的文件不是UTF-8编码的。所以,您应该注意这一点(使用UTF-8保存文件),或者告诉Ruby您的字符串不会是UTF-8。为此,你可以

  • 使用-E encoding命令行开关
  • 使用-E encoding环境变量
  • 传递RUBYOPT
  • 在Ruby评论中指定编码
  • 在操作之前对已加载的字符串执行force_encoding方法,例如lstrp

以下博客上有很多与Ruby编码相关的阅读:

http://blog.grayproductions.net/articles/understanding_m17n