Mysql UTF8 编码问题 - “字符串值不正确”

2024-01-23

我正在使用 Mysql (5.5.27) 和 .Net 连接器 (6.5.4),当我尝试插入一些数据时,出现以下错误。

Incorrect string value: '\xF3\xB6\xA5\x89f'...' for column 'STACK_TRACE' at row 1

我已经在堆栈溢出上进行了足够的搜索,并尝试了以下数据库、表和列的字符集和排序规则。

  • 'utf8' 'utf8_general_ci'
  • 'utf8' 'utf8_unicode_ci'
  • 'utf8mb4' 'utf8mb4_general_ci'
  • 'utf8mb4' 'utf8mb4_unicode_ci'

我已在连接字符串中正确设置“charset=utf8”。

  • 那个特定的 unicode 字符有什么问题吗?我无法控制这些数据,它是从很多 Android 手机收集的。
  • 是mysql的bug吗?

我已经通过进行以下更改解决了这个问题。

  • 使用“;CharSet=utf8mb4;”在连接字符串中。我之前就错过了这个。我使用的是“utf8”。
  • 将数据库的默认字符集、表的默认字符集和所有列的字符集设置为“utf8mb4”
  • 将数据库默认排序规则、表默认排序规则和所有列排序规则设置为“utf8mb4_unicode_ci”

正如 @eggyal 提到的,列字符集和排序规则才重要,我已经设置了所有默认值,这样我将来就不必更新所有新列。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mysql UTF8 编码问题 - “字符串值不正确” 的相关文章

随机推荐