Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ruby 1.8.7中插入MySQL数据库时丢失Unicode格式_Mysql_Ruby_Json_Unicode_Utf 8 - Fatal编程技术网

在Ruby 1.8.7中插入MySQL数据库时丢失Unicode格式

在Ruby 1.8.7中插入MySQL数据库时丢失Unicode格式,mysql,ruby,json,unicode,utf-8,Mysql,Ruby,Json,Unicode,Utf 8,在Ruby中,我有一组用UTF-8编码的字符串,例如:“HEC Montr\u00e9al” 当我使用“MySQL”gem将其插入MySQL表(格式为utf8\u general\u ci)时,反斜杠被删除。什么给:)?你们有谁知道这到底是怎么回事吗 编辑: 示例字符串: >> p mystring "HEC Montr\\u00e9al" 并在插入后的数据库中: HEC Montru00e9al 我相信您必须明确地告诉MySQL gem期望utf8。大概是这样的: db = M

在Ruby中,我有一组用UTF-8编码的字符串,例如:“HEC Montr\u00e9al”

当我使用“MySQL”gem将其插入MySQL表(格式为utf8\u general\u ci)时,反斜杠被删除。什么给:)?你们有谁知道这到底是怎么回事吗

编辑:

示例字符串:

>> p mystring
"HEC Montr\\u00e9al"
并在插入后的数据库中:

HEC Montru00e9al

我相信您必须明确地告诉MySQL gem期望utf8。大概是这样的:

db = Mysql.init
db.options(Mysql::SET_CHARSET_NAME, 'utf8')
db.real_connect(...
这不是UTF:

'HEC Montr\u00e9al'
这是JSON编码的Unicode字符串的ASCII表示。如果它是UTF-8,它看起来像:

'HEC Montréal'
您没有在某个地方正确解码JSON输入,或者当服务器需要纯文本时,客户端代码正在发送服务器JSON


首先,您需要弄清楚为什么在不需要JSON编码字符串的情况下得到JSON编码字符串,或者弄清楚为什么没有正确解码JSON。然后您可以查看数据库是否损坏了您的UTF-8。

我是按相反的顺序执行的(连接到数据库,设置字符集)。现在就试试你的方法!谢谢,我会努力弄明白为什么我会得到JSON编码的stringsOK,你完全正确。非常感谢你指出这一点@乌尔文德:不用担心,我对隧道视觉了解得更多,“不可能是那样的”,并且寻找错误的错误比我想的要多:)