mysql - 转换 MySQL 返回的编码错误的字符串

标签 mysql ruby mysql2

从 ruby​​1.8/mysql gem 迁移到 ruby​​1.9/mysql2 后,我从旧版数据库中获取了据报告为 utf8 的字符串,但看起来像是用 latin1 编码的(或者,可能有某种双重编码,如直接 force_encoding 没有帮助)。

字符串示例:

Ñ„Ñ‹Ð²Ð°Ð¿Ñ€Ð¾Ð»Ð´Ð¶Ñ - just a test string - йцукенгшщзхъ

我希望能够将它转换成

фывапролджэ - just a test string - йцукенгшщзхъ

有人可以帮助转换 a) 使用 ruby​​ 代码,和/或 b) 使用 SQL 吗?

由于复制粘贴可能会丢失一些信息,返回字符串中的字节: [195, 145, 226, 128, 158, 195, 145, 226, 128, 185, 195, 144, 194, 178, 195, 144, 194, 176, 195, 144, 194, 191, 195, 145, 226 , 130, 172, 195, 144, 194, 190, 195, 144, 194, 187, 195, 144, 194, 180, 195, 144, 194, 182, 195, 145, 194, 141, 32, 45, 32 , 106, 117, 115, 116, 32, 97, 32, 116, 101, 115, 116, 32, 115, 116, 114, 105, 110, 103, 32, 45, 32, 195, 144, 194, 185 , 195, 145, 226, 128, 160, 195, 145, 198, 146, 195, 144, 194, 186, 195, 144, 194, 181, 195, 144, 194, 189, 195, 144, 194, 179 , 195, 145, 203, 134, 195, 145, 226, 128, 176, 195, 144, 194, 183, 195, 145, 226, 128, 166, 195, 145, 197, 160]

最佳答案

好的,我在 How to fix double-encoded UTF8 characters (in an utf-8 table) 中找到了一个 SQL 解决方案.

CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8)

有 Ruby 的接受者吗?

关于mysql - 转换 MySQL 返回的编码错误的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16110141/

相关文章:

Ruby 版本在终端和 bash 中有所不同

ruby-on-rails - 为什么 User.all.each {|u|放 u.id} 打印所有字段?

ruby-on-rails-3 - Rails 3.1/mysql2 错误 : "MySQL server has gone away"

python - 为什么一个简单的减法会导致不同的输出?

mysql - 我如何使用 count() 函数编写两个关系表的 mysql 查询来显示所有数据?

mysql - 为什么 MySQL 对我来说这么慢?

ruby-on-rails - jbuilder 与 rails-api/active_model_serializers 在 Rails 4 中处理 JSON

mysql - Rails 迁移 : Adding comment to column without changing type

mysql - 我想在 Joyent 上从 mysql 升级到 mysql2

php - 三维(或更多)标签系统? PHP/MySQL 数据库架构