THE ORB
Arrancando el studio

Valor de cadena incorrecto: '\xF0\x9F...' para la columna

Alguien tenía un emoji en el nombre y tu base de datos no puede guardar emojis.

groupsEse jugador no puede guardarcodeNecesita un desarrollador

Haz esto primero

Tu base de datos y su conexión tienen que usar utf8mb4. Es un cambio de una sola vez.

bug_reportMejor pega tu consola entera

Qué significa

Se escribió un carácter que el juego de caracteres de la columna no puede representar. La secuencia de bytes del mensaje que empieza por \xF0\x9F es un emoji: cuatro bytes, y el viejo utf8 de MySQL es una codificación de tres bytes que no los puede guardar.

Qué lo provoca

Ordenado por la frecuencia con la que es la respuesta.

  1. 1

    Un emoji en el nombre de un jugador o en un mensaje de chat

    La forma más común de lejos. Los nombres de Discord y de Steam están llenos.

  2. 2

    La base de datos es utf8 y no utf8mb4

    El utf8 de MySQL siempre fue un UTF-8 parcial. utf8mb4 es el de verdad.

  3. 3

    El juego de caracteres de la conexión no está puesto

    La tabla puede estar en utf8mb4 y la CONEXIÓN seguir en utf8, y falla igual. Esta es la que se le pasa a todo el mundo.

  4. 4

    Texto acentuado o CJK en una columna latin1

    Un esquema más viejo que nunca se migró.

Cómo saber cuál es el tuyo

SHOW VARIABLES LIKE 'character_set_%';
SHOW FULL COLUMNS FROM users;

Si la columna dice utf8mb4 pero la conexión dice utf8, el problema es la cadena de conexión.

Dónde mirar

La cadena de conexión en server.cfg, y el juego de caracteres de la tabla.

Cómo arreglarlo

Poné los dos. Primero la conexión, que es la mitad que se olvida:

set mysql_connection_string "mysql://user:pass@host/db?charset=utf8mb4"

Y después el esquema:

ALTER DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

¿Sigues atascado en tu propio código?

Esta página es lo que suele significar este error. Pega tu consola en Server Fixer y ordenará todo lo que haya en ella y te dirá qué hacer primero; y si prefieres no tocarlo, ORBIE puede reparar el script y devolverte el recurso listo para soltar.

bug_reportAbrir el Server Fixer

Para este tipo de error, el Script Optimizer detecta los patrones de consulta que causan esto.

Errores que viajan con este