Ruby / Rails:如何删除字符串中的所有unicode?

时间:2014-01-09 15:38:53

标签: ruby unicode

我在旧数据库中有很多记录,我需要使用ISO-1889-1格式将该数据导出为CSV,因为有西班牙语字符。

然而,当将它转换为utf-8到iso时,它会不断抛出无法转换某些字符的错误。例如:

Encoding::UndefinedConversionError - U+2026 from UTF-8 to ISO-8859-1

这发生在我控制器的这一行:

send_data(data.encode("iso-8859-1"), filename: "books_data_#{date}.csv", type: 'text/csv; charset=iso-8859-1; header=present')

为了解决这个问题,我刚刚做了string.gsub!("…", "")。是否有更通用的方法来删除ruby字符串中的所有unicode?如果出现新的unicode字符,那么对于出现的每个人来说,手动执行操作并不完整,丑陋且难以维护。只是想知道。

1 个答案:

答案 0 :(得分:1)

您在寻找String::encode吗?

irb(main):011:0> "Здравствуйте Stack Overflow!".encode("iso-8859-1", undef: :replace, replace: "")
=> " Stack Overflow!"