Antes do MySQL 8.0.19, o problema que você está enfrentando não existia.
binary-as-hex
A opção client é habilitada por padrão no MySQL 8.0.19. Execute
status
ou \s
em MySQL. Você notará uma linha sobre dados binários. Se for mencionado como hexadecimal, saídas de funções como CHAR()
e UNHEX()
será exibido como hexadecimal em vez de texto normal. Para evitar isso, você pode usar a 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)
Ou você pode usar
--skip-binary-as-hex
. Os passos a seguir no Windows são:-
Abra o Prompt de Comando.
-
Altere o diretório. No meu caso o comando foi:
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
-
Correr
mysql -u root -p --skip-binary-as-hex
-
Digite a senha.
-
Agora, as saídas deCHAR()
função será como você espera que seja.
Observação :O
--skip-binary-as-hex
O método funciona até você sair do MySQL. Você precisa usar --skip-binary-as-hex
sempre que você abrir o MySQL de forma que os valores hexadecimais não sejam mostrados. Você pode consultar estes links para obter mais informações:
- 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