0

我使用现有数据库从 Request Tracker 3.8 迁移到 4.2,现在我无法创建包含变音符号和主题中的那种字符的新票证:

无法创建工单:内部错误:无法执行查询“插入工单(已解决、已创建、状态、LastUpdatedBy、主题、类型、InitialPriority、FinalPriority、SLA、开始、队列、到期、创建者、开始、优先级) , LastUpdated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'不正确的字符串值:'\xE4\xE4' 列第 1 行的“主题”

数据库已经包含特殊字符,当我检查字符名称集时,一切似乎都应该是(?):

mysql> SELECT character_set_name FROM information_schema.`COLUMNS`  WHERE 
table_schema = "rt4"   AND table_name = "Tickets"   AND column_name = 
"Subject";                                                      
+-------------->------+
| character_set_name |
+--------------------+
| utf8               |
+--------------------+
1 row in set (0.00 sec)

那么,RT4 试图插入 db 的具体内容是什么?

4

2 回答 2

0

显然,放入第 5 个字节的字节是?用 latin1 编码的,但你说它们是 utf8。由于 E4E4 不是任何有效的 utf8 编码,因此发生了错误。

请参阅utf8 字符问题中的“最佳实践” ;我看到的不是我存储 的我无法从有限的信息中看出有多少步骤没有遵循。

于 2017-05-01T03:43:03.533 回答
0

对于旧 RT 和旧 MySQL 的升级,有一些额外的步骤来处理数据库处理编码方式的变化。本升级文档中详细介绍了这些步骤。如果您可以使用这些步骤重新进行升级,它可能会解决您的问题。

于 2017-05-01T13:18:09.007 回答