es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo manejo los caracteres no latinos (es decir, С крыш наших домов) en MySQL?

Estoy usando la biblioteca mysql-connector-python para conectarme y escribir en una base de datos MySQL 5.7. He establecido la codificación en utf8mb4 con cursor.execute(‘SET CHARACTERS SET utf8mb4’), e incluso lo incluí en mi configuración de conexión:

import mysql.connector
from mysql.connector import Error

sgtitlesdb_settings = {
    'user': <usuario>,
    'password': <contraseña>,
    'host': <anfitrión>,
    'port': <puerto>,
    'database': <db>,
    'charset': 'utf8'
}

def getmysqlconnection():
    try:
        dbconnection = mysql.connector.connect(**sgtitlesdbsettings)
        return db_connection
    except Error as e:
        print("Error: ", e)
        return False

Pero cualquier caracter que no sea latino (letras que no sean del inglés), como cualquier caracter alfa del este de Europa o símbolos especiales (♬ por ejemplo), se inserta como ?.

Aquí está el error que recibo si no cambio la codificación:

1366 (HY000): Valor de cadena incorrecto: ‘\xD0\x9E\xD1\x82\xD0\xB2…’ para la columna…

No entiendo lo que debo hacer para resolver este problema. Cada artículo en el que me topo parece no ayudar.

¡Gracias de antemano!</anfitrión></contraseña>

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que está teniendo problemas para configurar la codificación correcta para su base de datos MySQL. Parece que ya ha configurado la codificación como utf8mb4 con cursor.execute('SET CHARACTERS SET utf8mb4') e incluido esto en sus ajustes de conexión. Sin embargo, sigue viendo caracteres no latinos que están siendo ingresados como ?.

    El error que está recibiendo, 1366 (HY000): Valor de cadena incorrecto: '\xD0\x9E\xD1\x82\xD0\xB2...' para la columna..., indica que la codificación no está configurada correctamente. Es posible que la codificación no esté configurándose correctamente al establecer la conexión.

    Puede intentar establecer la codificación explícitamente al establecer la conexión. Puede hacer esto agregando la siguiente línea a sus ajustes de conexión:

    'charset': 'utf8mb4'

    Si esto no resuelve el problema, puede considerar otras posibles causas, como el conjunto de caracteres de la tabla o el conjunto de caracteres de los datos que se están ingresando.

    ¡Espero que esto ayude!

Comments are closed.