python - “不正确的字符串值”,但可以使用 UTF-8 解码
问题描述
我是 MySQL 新手,正在将文本数据写入数据库并收到此错误:
mysql.connector.errors.DatabaseError: 1366 (HY000): Incorrect string value: '\xCC\xB5#821...' for column 'column' at row 1
但是当我在 Python 中解码该文本时,它不会引发任何错误:
In: b'\xCC\xB5#821...'.decode('utf-8')
Out: '̵#821...'
这个答案似乎表明此代码会引发错误,但事实并非如此。我错过了什么?
解决方案
我不知道默认字符集实际上不是 UTF-8。使用ALTER TABLE <table> CONVERT TO CHARACTER SET utf8mb4
,如其他答案所示,解决了问题。
推荐阅读
- macos - 将 Visual Studio Code 二进制文件添加到 Mac 中的路径,找不到命令,尽管它在 $PATH 中
- apache-spark - 如何在 Spark Dataframe 中像 SQL 一样实现 EXISTS 条件
- php - 如何在 php 中通过 xpath 找到包含特定字符串的元素?
- javascript - 如何在 JS 中将字符串转换为函数原型?
- c# - File.Exist always return false
- javascript - MediaWiki API,波兰字符
- android - “crashlytics 应用初始化程序禁用”是什么意思?
- javascript - 等待谷歌地图方向服务时禁用按钮
- c - 如何比较两个数学库实现?
- mongodb - 在 mongodb 中查找指定大小的句子的第一个单词