Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL хвърля грешка при неправилна стойност на низа

Проблемът е причината за героя в края на туита.

Прилича на символ „емоджи“, известен още като японско усмихнато лице, но не ми се показва нито в Chrome, нито в Safari.

Известни са проблеми със съхраняването на 4byte utf символи в някои версии на MySQL. Очевидно трябва да използвате utf8mb4 за представяне на 4 байтови UTF знаци, тъй като нормалният набор от символи utf8 може да представлява само знаци с дължина до 3 байта и така не може да съхранява знаци, които са извън Основна многоезична равнина

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

Което е новина за мен, тъй като по същество означава, че типът данни utf8 в MySQL всъщност не е правилен utf8.

Тук има предложения как да се справите с товаКак да вмъкна utf-8 mb4 символ (емоджи в ios5) в mysql? включително:

„Също така се уверете, че слоят на приложението ви задава набора от знаци за връзки към базата данни на utf8mb4. Проверете отново дали това всъщност се случва – ако използвате по-стара версия на mysql клиентската библиотека на избраната от вас рамка, тя може да не е компилирана с поддръжка на utf8mb4 и няма да зададе правилно набора от знаци. Ако не, може да се наложи да го актуализирате или да го компилирате сами."

Ако използвате Connector/J, трябва да зададете character_set_server=utf8mb4 в конфигурацията на връзката.

Всичките ви набори от знаци трябва да са utf8mb4, което може да сте опитали, но в момента не са зададени.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql_query връща само тип низ за тип int/fload db

  2. Laravel OrderBy брой връзки

  3. JSON_MERGE_PATCH() – Извършете съвместимо с RFC 7396 сливане на JSON документи в MySQL

  4. PHP календар с повтарящи се събития от MySQL база данни

  5. MySQL - Използване на COUNT(*) в клаузата WHERE