Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL lança erro de valor de string incorreto


É o personagem no final do tweet que está causando o problema.

Parece um personagem 'emoji', também conhecido como rosto sorridente japonês, mas não está sendo exibido para mim no Chrome ou no Safari.

Existem problemas conhecidos ao armazenar caracteres utf de 4 bytes em algumas versões do MySQL. Aparentemente, você deve usar utf8mb4 para representar caracteres UTF de 4 bytes, pois o conjunto de caracteres utf8 normal só pode representar caracteres de até 3 bytes de comprimento e, portanto, não pode armazenar caracteres que estejam fora do Plano multilíngue básico

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

O que é novidade para mim, pois basicamente significa que o tipo de dados utf8 no MySQL não é realmente utf8 adequado.

Há sugestões de como lidar com isso aquiComo inserir o caractere utf-8 mb4 (emoji no ios5) no mysql? Incluindo:

"Também certifique-se de que sua camada de aplicativo defina o conjunto de caracteres de suas conexões de banco de dados como utf8mb4. Verifique novamente se isso está realmente acontecendo - se você estiver executando uma versão mais antiga da biblioteca cliente mysql do framework escolhido, ela pode não ter sido compilada com suporte a utf8mb4 e não definirá o conjunto de caracteres corretamente. Caso contrário, talvez seja necessário atualizá-lo ou compilá-lo você mesmo"

Se você estiver usando o Connector/J, você precisa definir character_set_server=utf8mb4 na configuração de conexão.

Todos os seus conjuntos de caracteres devem ser utf8mb4, que você pode ter tentado, mas não está definido no momento.