Chúng tôi đang sử dụng MySQL tại công ty tôi làm việc và chúng tôi xây dựng cả ứng dụng nội bộ và ứng dụng khách sử dụng Ruby on Rails.
Khi tôi bắt đầu làm việc ở đây, tôi gặp phải một vấn đề mà tôi chưa bao giờ gặp phải trước đây; cơ sở dữ liệu trên máy chủ sản xuất được đặt thành Latin-1, nghĩa là viên ngọc MySQL ném ngoại lệ bất cứ khi nào có đầu vào của người dùng nơi người dùng sao chép và dán các ký tự UTF-8.
Sếp của tôi gọi những "nhân vật xấu" này vì hầu hết trong số họ là những nhân vật không thể in được và nói rằng chúng tôi cần loại bỏ chúng. Tôi đã tìm thấy một vài cách để làm điều này, nhưng cuối cùng chúng tôi đã kết thúc trong một tình huống cần có một nhân vật UTF-8. Thêm vào đó là một chút rắc rối, đặc biệt vì có vẻ như giải pháp duy nhất tôi từng đọc về vấn đề này là chỉ đặt cơ sở dữ liệu thành UTF-8 (có ý nghĩa với tôi).
Đối số duy nhất mà tôi đã nghe thấy khi gắn bó với Latin-1 là cho phép các ký tự UTF-8 không in được có thể làm rối các tìm kiếm văn bản / toàn văn bản trong MySQL. Điều này có thực sự đúng không?
Có những lý do khác người ta nên sử dụng Latin-1 trên UTF-8? Theo hiểu biết của tôi thì nó vượt trội và trở nên phổ biến hơn.