ruby - Ruby 从 1.8.7 升级到 1.9.3 后出现 Yaml 编码问题

标签 ruby character-encoding yaml upgrade ruby-1.9.3

也许你可以帮助我处理 Yaml 编码。

我们有一个应用程序,它将一些设置序列化为 Yaml 字符串存储在数据库中,例如:

---
quantity_units: Stunden,Tage, Monate, Pauschal, Jahre, GB, MB, Stück, Seite, SMS
categories: Shirts
number_schema: P-[Y4]-[CY3]

我们正在从 Ruby 1.8.7 迁移到 Ruby 1.9.3,并且 Yaml 解析库在版本之间发生了变化,给我们留下了这样的解码字符串,从 Stück卡住

我只想知道如何正确地将这些字符串转换为 unicode,其余的由我来处理。

我不知道 1.8.7 Yaml 解析器使用哪种编码。

最佳答案

这看起来像 utf8 读取为 iso-8895-1,并解释为 utf-8 ruby 适配器。您可能想检查您当前的区域设置和 数据库服务器的区域设置。另请参阅如果您访问 直接通过控制台获取数据,并检查那里的编码。它 在数据库上看起来像 utf-8,但被解释为 iso-8859-1 介于两者之间。

如果没有什么帮助,有一个片段可以传递您的数据(并且 写回来)。

 "Stück".encode('iso-8859-1').force_encoding('utf-8') # I've no idea what I'm doing.
 # => "Stück"

关于ruby - Ruby 从 1.8.7 升级到 1.9.3 后出现 Yaml 编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10278537/

相关文章:

amazon-web-services - aws cloudformation Elasticsearch 堆栈

ruby-on-rails - 如何使用载波从外部将文件保存到模型?

ruby - 在 Ruby 中,{1 => new "new")} 中的 ("alice"是什么意思?

php - 数据库记录的字符转换

php - php mysql 字符编码

html - Jekyll - 如何在根目录中创建页面?

ruby-on-rails - 通过浏览器而不是控制台使用 Rails 跟踪/BPT 陷阱

ruby - Amazon-ecs gem 返回 400 Bad Request Error

mysql - 在 MySQL 中,我如何知道特定表正在使用什么字符集?

R Markdown 2 到 EPUB 如何?