gpt4 book ai didi

php - myrocks (mariadb + rocksdb) php 字符集

转载 作者:行者123 更新时间:2023-11-28 23:12:30 24 4
gpt4 key购买 nike

已经有很多关于为 mysql 选择正确的字符集的帖子,但对于 rocksdb 引擎来说,这又是一个不同的(并且非常令人沮丧的)故事。

首先,我决定使用 utf8-binary 作为字符集(myrocks 支持 latin1、utf8-bin 和二进制),因为我的数据可能包含特殊字符,我想在保存方面。

此外,我正在使用 PHP 和 PDO 将数据加载到 mysql 中,连接如下所示:

$pdo = new PDO('mysql:host=localhost;dbname=dbname;charset=utf8', 'user', 'password');

所以我把charset设置为utf8(我也试过用utf8_bin,但是PDO不支持)。尽管我能够插入一些行,但有时会出现如下错误:

Incorrect string value: '\xF0\x9F\x87\xA8\xF0\x9F...' for column 'column_name'

但是现在错误是什么?这个十六进制序列编码一个 unicode-smily(区域指示符号字母 c + 区域指示符号字母 n)。在我看来,有效的 utf8 和 mysql 以及 php 都配置为使用它。

最佳答案

你必须有 utf8mb4,而不是 MySQL 的子集 utf8

⇨ 需要一个 4 字节的 UTF-8 编码,十六进制 F09F87A8

如果 rocksdb 不支持,那么要么放弃这样的字符,要么 rocksdb。更改 PDO 调用中的字符集以及需要它的列。

关于php - myrocks (mariadb + rocksdb) php 字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45306498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com