sql >> Base de Datos >  >> RDS >> Mysql

Mostrar caracteres japoneses de SQLException.getMessage()

ラケシュ12345

¿Correcto?

Probablemente lo que sucedió cuando INSERTing fue

  • Tenía la codificación utf8 correcta para los datos y
  • ESTABLECER NOMBRES latin1 -- por defecto o por error, y
  • La columna (o tabla) en la que se almacenó el texto se declaró con CHARACTER SET latin1 , nuevamente posiblemente por defecto.

Puede verificar que los datos se almacenan correctamente haciendo

SELECT col, HEX(col) ...

Si obtiene esa cadena, el hexadecimal será E383A9E382B1E382B7E383A5EFBC91EFBC92EFBC93EFBC94EFBC95 . Observe cómo hay grupos de 6 hex., empezando por E383 en el caso de Katakana o EFBC para los "dígitos de ancho completo".

Suponiendo que la tabla aún diga latin1, no se perderán datos y el ALTER de 2 pasos lo arreglará En resumen:

ALTER TABLE Tbl MODIFY COLUMN col VARBINARY(...) ...;
ALTER TABLE Tbl MODIFY COLUMN col VARCHAR(...) ... CHARACTER SET utf8 ...;

donde las longitudes son lo suficientemente grandes y los otros "..." tienen cualquier otra cosa (NO NULL, etc.) que ya estaba en la columna.

(No pude dar una respuesta clara y completa a esta pregunta hasta hace muy poco).