Antes de MySQL 8.0.19, el problema al que se enfrenta no existía. binary-as-hex
La opción de cliente está habilitada de forma predeterminada desde MySQL 8.0.19.
Ejecutar status
o \s
en MySQL. Notará una línea sobre datos binarios. Si se menciona como hexadecimal, salidas de funciones como CHAR()
y UNHEX()
se mostrará como hexadecimal en lugar de texto normal.
Para evitar esto, puede usar la cláusula USING charset de CHAR()
.
mysql> SELECT CHAR(97);
+--------------------+
| CHAR(97) |
+--------------------+
| 0x61 |
+--------------------+
1 row in set (0.00 sec)
mysql> SELECT CHAR(97 USING utf8mb4);
+------------------------+
| CHAR(97 USING utf8mb4) |
+------------------------+
| a |
+------------------------+
1 row in set (0.00 sec)
O bien, puede usar --skip-binary-as-hex
. Los pasos a seguir en Windows son:
-
Abra el símbolo del sistema.
-
Cambia el directorio. En mi caso el comando fue:
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
-
Ejecutar
mysql -u root -p --skip-binary-as-hex
-
Introduzca la contraseña.
-
Ahora, las salidas de
CHAR()
la función será como usted espera que sea.
Nota :El --skip-binary-as-hex
El método funciona hasta que salga de MySQL. Debe usar --skip-binary-as-hex
método cada vez que abra MySQL de modo que no se muestren los valores hexadecimales.
Puede consultar estos enlaces para obtener más información:
- https://dev.mysql. com/doc/refman/8.0/en/string-functions.html#function_char
- https://dev.mysql.com/doc/refman/8.0/en/mysql-command-options.html#option_mysql_binary-as-hex