RT4MySQL字符编码问题
我使用现有的db从Request Tracker 3.8迁移到4.2,现在我无法创建包含umlauts和主题中类似字符的新票据: 无法创建票证:内部错误:无法执行查询“插入票证(已解决、已创建、状态、LastUpdateBy、主题、类型、InitialPriority、FinalPriority、SLA、Start、Queue、Due、Creator、Started、Priority、LastUpdated)值(?,,,,,,,,,,,,,,,?)'不正确的字符串值:'\xE4\xE4'用于第1行的'Subject'列 db已经保存了特殊字符,当我检查字符名称集时,一切似乎都应该是(?):RT4MySQL字符编码问题,mysql,character-encoding,rt,Mysql,Character Encoding,Rt,我使用现有的db从Request Tracker 3.8迁移到4.2,现在我无法创建包含umlauts和主题中类似字符的新票据: 无法创建票证:内部错误:无法执行查询“插入票证(已解决、已创建、状态、LastUpdateBy、主题、类型、InitialPriority、FinalPriority、SLA、Start、Queue、Due、Creator、Started、Priority、LastUpdated)值(?,,,,,,,,,,,,,,,?)'不正确的字符串值:'\xE4\xE4'用于第1
那么,RT4到底想插入到db中的是什么?显然,放入第5个
?
中的字节是用拉丁文编码的,但您说它们是utf8。由于E4不是任何东西的有效utf8编码,因此发生了错误
请参阅中的“最佳实践”
从有限的信息中,我无法判断有多少步骤没有遵循。对于从旧RT和旧MySQL升级,有一些额外的步骤可以处理数据库处理编码方式的更改。有关这些步骤的详细信息,请参见。如果您可以使用这些步骤重新升级,可能会解决您的问题。实际上,clean install也会出现同样的问题。表Tickets在utf8中,当我尝试在RT4 UI中使用subject“äääääää”创建新的ticket时,则[critical]:无法创建ticket:Sisemine viga:无法执行查询“插入到Tickets(SLA、LastUpdated、Status、Queue、LastUpdatedBy、Starts、subject、Type、Started、Priority、Creator、Due、Resolved、Created)值(、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、)“字符串值不正确:“\xE4\xE4\xE4\xE4\xE4\xE4”列位于第1行(/opt/rt4/sbin/。/lib/RT/Ticket.pm:421)。这可能是由于DBD::mysql的最新版本中的更改不兼容造成的。您可以尝试安装早期版本,如。
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)