我正在使用 Windows XP 上的 Ruby 1.8.6 将一些数据从 MS Access 2003 迁移到 MySQL 5.0(为此编写一个 Rake 任务)。
事实证明,Windows 字符串数据被编码为 windows-1252,而 Rails 和 MySQL 都假定为 utf-8 输入,因此一些字符(例如撇号)被破坏了。他们最后变成了带有重音的“a”之类的东西。
有谁知道将 windows-1252 字符串转换为 utf-8 的工具、库、系统、方法、仪式、咒语或咒语?
最佳答案
对于 Ruby 1.8.6,您似乎可以使用标准库的一部分 Ruby Iconv:
根据这个helpful article ,看来您至少可以像这样从字符串中清除不需要的 win-1252 字符:
ic = Iconv.new('UTF-8//IGNORE', 'UTF-8')
valid_string = ic.iconv(untrusted_string + ' ')[0..-2]
然后可能会尝试像这样进行完全转换:
ic = Iconv.new('UTF-8', 'WINDOWS-1252')
valid_string = ic.iconv(untrusted_string + ' ')[0..-2]
关于windows - 如何在 Ruby 中将字符串从 windows-1252 转换为 utf-8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/951891/