mysql - Ruby - mysql2 驱动程序更改编码/各种 utf-8 问题

标签 mysql ruby encoding utf-8 mysql2

我有一个在 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/

相关文章:

ruby - "Personal"ruby​​ 中的方法

ruby - 像 Ruby 中的 let

json - JSON REST Web API 的文本编码标准是什么?

java - Tapestry 中的表单编码

c# - 将 Web api blob 读入字符串,我可以将其作为 json 对象的一部分发送到服务器并返回到文件

mysql - postgresql vs mysql 易于扩展,以及对高度相关(大量外键)数据库的实用性

mysql - 从数据库表中获取每月的记录

ruby-on-rails - Ruby、RoR、gmail 和 NET::SMTP

php - 带表前缀的 PDO

java - 如何使用 JSP 实现用户名可用性