Mart Seedre
Mart Seedre

Reputation: 3

RT4 mysql character encoding issue

I migrated from Request Tracker 3.8 to 4.2 with existing db and now I can't create new tickets that contain umlauts and that sort of characters in subject:

Couldn't create a ticket: Internal Error: Couldn't execute the query 'INSERT INTO Tickets (Resolved, Created, Status, LastUpdatedBy, Subject, Type, InitialPriority, FinalPriority, SLA, Starts, Queue, Due, Creator, Started, Priority, LastUpdated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'Incorrect string value: '\xE4\xE4' for column 'Subject' at row 1

The db already holds special characters and when I check character name set then everything seems to be as it should be(?):

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)

So, what exactly is it that RT4 is trying to insert into db?

Upvotes: 0

Views: 321

Answers (2)

Jim Brandt
Jim Brandt

Reputation: 601

For upgrades from older RT and older MySQL, there are some extra steps to handle changes in the way the database handles encodings. These steps are detailed in this upgrading document. If you can redo your upgrade with these steps, it may resolve your issue.

Upvotes: 0

Rick James
Rick James

Reputation: 142375

Apparently, the bytes that were put into the 5th ? were encoded in latin1, yet you said they were utf8. Since E4E4 is not a valid utf8 encoding for anything, the error happened.

See "Best practice" in Trouble with utf8 characters; what I see is not what I stored I can't tell from the limited information how many of the steps were not followed.

Upvotes: 0

Related Questions