【发布时间】:2011-08-21 08:53:58
【问题描述】:
我从 YouTube 中提取了一些 UTF8 无效的 RSS 提要。我可以使用
创建一个类似的 ruby 字符串bad_utf8 = "\u{61B36}"
bad_utf8.encoding # => #<Encoding:UTF-8>
bad_utf8.valid_encoding? # => true
Ruby 认为这是一种有效的 UTF-8 编码,我很确定它不是。
当与 Mysql 交谈时,我得到一个这样的错误
require 'mysql2'
client = Mysql2::Client.new(:host => "localhost", :username => "root")
client.query("use test");
bad_utf8 = "\u{61B36}"
client.query("INSERT INTO utf8 VALUES ('#{moo}')")
# Incorrect string value: '\xF1\xA1\xAC\xB6' for column 'string' at row 1 (Mysql2::Error)
如何在将这些无效的编码类型发送到 MySQL 之前检测或修复它们?
【问题讨论】:
-
所以我认为问题可能是 MySQL 只支持基本多语言平面,而 ruby 支持一切。
-
Ruby 什么都支持?从什么时候开始?
标签: mysql ruby utf-8 internationalization utf8mb4