Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL ném lỗi giá trị chuỗi không chính xác

Đó là ký tự ở cuối tweet gây ra sự cố.

Nó trông giống như một ký tự 'biểu tượng cảm xúc' hay còn gọi là mặt cười của Nhật Bản nhưng nó không hiển thị cho tôi trong Chrome hoặc Safari.

Có một số vấn đề đã biết khi lưu trữ các ký tự 4byte utf trong một số phiên bản của MySQL. Rõ ràng bạn phải sử dụng utf8mb4 để đại diện cho 4 ký tự UTF 4 byte, vì bộ ký tự utf8 bình thường chỉ có thể đại diện cho các ký tự có độ dài tối đa 3 byte và do đó không thể lưu trữ ký tự nằm ngoài href Mặt phẳng đa ngôn ngữ cơ bản

http://dev.mysql.com/doc /refman/5.5/en/charset-unicode-utf8mb4.html

Đó là tin tức đối với tôi vì nó về cơ bản có nghĩa là kiểu dữ liệu utf8 trong MySQL không thực sự phù hợp với utf8.

Có các đề xuất về cách xử lý vấn đề này tại đây Làm cách nào để chèn ký tự utf-8 mb4 (biểu tượng cảm xúc trong ios5) trong mysql? bao gồm:

"Ngoài ra, hãy đảm bảo rằng lớp ứng dụng của bạn đặt bộ ký tự của các kết nối cơ sở dữ liệu của nó thành utf8mb4. Kiểm tra kỹ điều này có thực sự xảy ra hay không - nếu bạn đang chạy phiên bản cũ hơn của thư viện máy khách mysql của khuôn khổ đã chọn, nó có thể chưa được biên dịch với hỗ trợ utf8mb4 và nó sẽ không đặt đúng bộ ký tự. Nếu không, bạn có thể phải cập nhật hoặc tự biên dịch nó "

Nếu đang sử dụng Connector / J, bạn cần đặt character_set_server =utf8mb4 trong cấu hình kết nối.

Tất cả các bộ ký tự của bạn phải là utf8mb4, bạn có thể đã thử nhưng hiện chưa được đặt.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khi nào sử dụng NULL trong bảng MySQL

  2. Chỉ hiển thị giờ trong MYSQL DATEDIFF

  3. Không thay thế thành có một mệnh đề where?

  4. Giải pháp DBaaS tốt nhất cho MySQL

  5. MySQL GROUP BY với tùy chọn