Prima di MySQL 8.0.19, il problema che stai affrontando non esisteva. binary-as-hex
l'opzione client è abilitata per impostazione predefinita da MySQL 8.0.19.
Esegui status
o \s
in MySQL. Noterai una riga sui dati binari. Se è menzionato come esadecimale, output di funzioni come CHAR()
e UNHEX()
verrà visualizzato come esadecimale anziché come testo normale.
Per evitare ciò puoi usare la clausola USING charset di 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)
Oppure puoi usare --skip-binary-as-hex
. I passaggi da seguire in Windows sono:
-
Apri il prompt dei comandi.
-
Cambia la directory. Nel mio caso il comando era:
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
-
Corri
mysql -u root -p --skip-binary-as-hex
-
Inserisci la password.
-
Ora, gli output di
CHAR()
la funzione sarà come ti aspetti.
Nota :Il --skip-binary-as-hex
il metodo funziona fino a quando non esci da MySQL. Devi usare --skip-binary-as-hex
ogni volta che apri MySQL in modo tale che i valori esadecimali non vengano mostrati.
Puoi fare riferimento a questi link per ulteriori informazioni:
- 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