Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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 强制Zlib::Deflate.Deflate UTF-8 3字节_Ruby - Fatal编程技术网

Ruby 强制Zlib::Deflate.Deflate UTF-8 3字节

Ruby 强制Zlib::Deflate.Deflate UTF-8 3字节,ruby,Ruby,根据,如果我想存储包含4字节UTF-8字符的数据,mysql的列需要使用utf8mb4编码 我正在使用Zlib::Deflate.Deflate压缩字符串,并希望将其存储在Mysql中 插入记录后,我得到以下信息: ActiveRecord::StatementInvalid: Mysql2::Error: Incorrect string value: '\x96Iv$!\x0C...' 所以基本上,我要么改变列的编码,要么强制Zlib::Deflat.deflate只生成3字节的UTF-8

根据,如果我想存储包含4字节UTF-8字符的数据,mysql的列需要使用
utf8mb4
编码

我正在使用
Zlib::Deflate.Deflate
压缩字符串,并希望将其存储在Mysql中

插入记录后,我得到以下信息:

ActiveRecord::StatementInvalid: Mysql2::Error: Incorrect string value: '\x96Iv$!\x0C...'

所以基本上,我要么改变列的编码,要么强制
Zlib::Deflat.deflate
只生成3字节的UTF-8字符。有办法做到这一点吗?

我没有将数据存储为
UTF-8
字符串,而是将列类型更改为,并将数据存储为二进制

自我和他人注意:如果要存储
Zlib
膨胀数据,请确保
mysql
中的列类型为
BLOB