mysql - 如何使用 web2py (mySQL) 插入 4 字节 unicode 字符?

标签 mysql unicode web2py

我有一个设置为 CHARACTER SET utf8mb4 的 mySQL 表和一个具有 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci 的 x 列,我可以直接在数据库上运行 SQL 命令来插入 4 字节 unicode 字符,例如

INSERT INTO mytable (x) VALUES ('💩');

但是当我在 web2py 中运行以下命令时,我得到一个不同的条目,它看起来像 ????

sql = u"INSERT INTO mytable (x) VALUES (%s)"
db.executesql(sql, (u'💩',))

我需要在 web2py 中的某个地方设置一些东西来告诉它在不改变的情况下传递 unicode 字符吗?

附录:当我也使用 DAL 时,也会出现相同的 ??? 条目,如

db.mytable.insert(x=u'💩')

最佳答案

参见 Trouble with UTF-8 characters; what I see is not what I stored 中的“问号”

请参阅 http://mysql.rjweb.org/doc.php/charcoll#python 中的 Python 注释。特别是,您的连接参数(Python 和 MySQL 之间)是什么?

u"Invalid utf8 string: 'F09F92'" 暗示 Python(可能是由于解释 MySQL utf8 错误)对 4 字节的 poo 感到困惑.

关于mysql - 如何使用 web2py (mySQL) 插入 4 字节 unicode 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48433284/

相关文章:

pdf - 无法在 Jupyter 的 PDF 输出中显示 Unicode 字符(如 λ)

web2py - 从另一个 Controller 调用 Controller 的方法

python - 在 web2py 中查找用户正在使用的浏览器

c# - 在 Windows 10 更新 1803 之后,我的程序在从网络共享运行时无法打开套接字

php - 在 PHP 5.3 和 Windows Vista 中使用日文文件名?

mysql - 参数化查询中的数据类型/长度

java - 平方根字符/符号

python - 接受 POST 和 GET 的搜索屏幕

mysql - 使用减号插入mysql时出现语法错误

php - 如何显示mysql数据库中的图像?