这是我的连接设置方式:
Connection conn = DriverManager.getConnection(url + dbName + "?useUnicode=true&characterEncoding=utf-8", userName, password);
当tyring为表添加一行时,我收到以下错误:
Incorrect string value: '\xF0\x90\x8D\x83\xF0\x90...' for column 'content' at row 1
我正在插入数千条记录,当文本包含\ xF0时,我总是会收到此错误(即错误的字符串值始终以\ xF0开头).
该列的排序规则为utf8_general_ci.
可能是什么问题呢?
我在mysql中有一个简单的数据库,我尝试打印结果,但编码是错误的.它发生在orm模型和纯sql模式下.
使用相同的sqlalchemy conf,纯粹的使用工作和烧瓶应用程序不.我也试过在PHP中进行简单测试,它运行正常.
我究竟做错了什么?
Mysql变量
mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
mysql> SHOW VARIABLES LIKE 'collation%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci | …