Sau khi nhận thấy một ứng dụng có xu hướng loại bỏ các email ngẫu nhiên do lỗi giá trị chuỗi không chính xác, tôi đã đi và chuyển nhiều cột văn bản để sử dụng bộ utf8
ký tự cột và cột mặc định đối chiếu ( utf8_general_ci
) để nó chấp nhận chúng. Điều này đã sửa hầu hết các lỗi và làm cho ứng dụng ngừng nhận lỗi sql khi nó cũng đánh vào các email không phải là tiếng Latin.
Mặc dù vậy, một số email vẫn khiến chương trình gặp lỗi không đúng giá trị chuỗi: (Incorrect string value: '\xE4\xC5\xCC\xC9\xD3\xD8...' for column 'contents' at row 1)
Cột nội dung là kiểu MEDIUMTEXT
dữ liệu sử dụng bộ utf8
ký tự cột và utf8_general_ci
đối chiếu cột. Không có cờ nào tôi có thể chuyển đổi trong cột này.
Hãy nhớ rằng tôi không muốn chạm vào hoặc thậm chí nhìn vào mã nguồn ứng dụng trừ khi thực sự cần thiết:
- Điều gì gây ra lỗi đó? (vâng, tôi biết các email chứa đầy rác ngẫu nhiên, nhưng tôi nghĩ utf8 sẽ khá dễ dãi)
- Làm thế nào tôi có thể sửa chữa nó?
- Những ảnh hưởng có thể có của một sửa chữa như vậy là gì?
Một điều tôi đã cân nhắc là chuyển sang một varf utf8 ([một số lượng lớn]) với cờ nhị phân được bật, nhưng tôi không quen với MySQL và không biết liệu cách khắc phục đó có hợp lý không.