Mysql UTF8编码问题-“不正确的字符串值" [英] Mysql UTF8 Encoding Issue - "Incorrect string value"
问题描述
我正在将Mysql(5.5.27)与.Net连接器(6.5.4)配合使用,当我尝试插入一些数据时,出现了以下错误.
I'm using Mysql (5.5.27) with .Net connector (6.5.4), and when i'm trying to insert some data, i'm getting following error.
Incorrect string value: '\xF3\xB6\xA5\x89f'...' for column 'STACK_TRACE' at row 1
我已经对堆栈溢出进行了足够的搜索,并尝试按照charset&数据库,表和列的排序规则.
I have already searched enough on stack overflow, and tried following charset & collation for database, table and column.
- 'utf8''utf8_general_ci'
- 'utf8''utf8_unicode_ci'
- 'utf8mb4''utf8mb4_general_ci'
- 'utf8mb4''utf8mb4_unicode_ci'
我已经在连接字符串中正确设置了'charset = utf8'.
I have set 'charset=utf8' in connection string properly.
- 该特定的unicode字符有什么问题吗?我无法控制从很多Android手机收集的数据.
- 是MySQL错误吗?
推荐答案
我通过进行以下更改解决了该问题.
I have solved it, by doing following changes.
- 使用了; CharSet = utf8mb4;"在连接字符串中.我错过了这个.我使用的是"utf8".
- 将数据库的默认字符集,表的默认字符集以及所有列的字符集设置为'utf8mb4'
- 将数据库的默认排序规则,表的默认排序规则和所有列的排序规则设置为'utf8mb4_unicode_ci'
正如@eggyal所提到的,列字符集和排序规则只重要,我已经设置了所有默认值,以便将来不再更新所有新列.
As @eggyal mentions, column charset and collation only matters, i have set all default values, so that I don't have update all new columns in future.
这篇关于Mysql UTF8编码问题-“不正确的字符串值"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!