Mysql UTF8编码问题-“不正确的字符串值" [英] Mysql UTF8 Encoding Issue - "Incorrect string value"

查看:76
本文介绍了Mysql UTF8编码问题-“不正确的字符串值"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆