Eth*_*han 9 ruby windows ms-access encoding character-encoding
我正在使用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的工具,库,系统,方法,仪式,咒语或咒语?
aus*_*ton 10
对于Ruby 1.8.6,看起来你可以使用Ruby Iconv,它是标准库的一部分:
根据这篇有用的文章,您似乎至少可以从字符串中清除不需要的win-1252字符,如下所示:
ic = Iconv.new('UTF-8//IGNORE', 'UTF-8')
valid_string = ic.iconv(untrusted_string + ' ')[0..-2]
Run Code Online (Sandbox Code Playgroud)
然后可能会尝试进行完全转换,如下所示:
ic = Iconv.new('UTF-8', 'WINDOWS-1252')
valid_string = ic.iconv(untrusted_string + ' ')[0..-2]
Run Code Online (Sandbox Code Playgroud)
如果您使用的是Ruby 1.9 ...
string_in_windows_1252 = database.get(...)
# => "Fåbulous"
string_in_windows_1252.encoding
# => "windows-1252"
string_in_utf_8 = string_in_windows_1252.encode('UTF-8')
# => "Fabulous"
string_in_utf_8.encoding
# => 'UTF-8'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21507 次 |
| 最近记录: |