我有一个在 Sinatra 上运行的 API。它查询mysql数据库,并以json或xml格式返回数据。我的 unicode 数据有问题。如果我从控制台查询生产数据库,我将正确获取数据:
persönlichen
但是,在我的 API 结果中(或者如果我使用 mysql2 gem 查询 irb 中的数据库),我得到以下结果:
persönlichen
在我的开发盒上一切都很顺利,这让我解决问题的努力变得困惑。
我已尽一切努力确保数据库仅支持 utf-8(编码、排序规则、客户端和服务器字符集均为 utf-8)。我正在使用 mysql2 驱动程序,据说它强制所有内容都为 utf-8。我正在我的事件记录连接上设置 :encoding => 'UTF8'。
我错过了什么?
最佳答案
我能够解决问题 - 数据库中的数据编码不正确。我正在使用 sql 转储文件填充我的数据库 - 我将其添加到顶部,一切都运行良好:
set names utf8;
create database if not exists `my_db_name` CHARACTER SET utf8 COLLATE utf8_general_ci;
关于mysql - Ruby - mysql2 驱动程序更改编码/各种 utf-8 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8684312/