Voorafgaand aan MySQL 8.0.19 bestond het probleem waarmee u wordt geconfronteerd niet. binary-as-hex
client-optie is standaard ingeschakeld vanaf MySQL 8.0.19.
Voer status
uit of \s
in MySQL. U ziet een regel over binaire gegevens. Als het wordt vermeld als hexadecimaal, uitgangen van functies zoals CHAR()
en UNHEX()
wordt weergegeven als hexadecimaal in plaats van normale tekst.
Om dit te voorkomen kun je de USING karakterset-clausule van CHAR()
. gebruiken .
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)
Of u kunt --skip-binary-as-hex
. gebruiken . De te volgen stappen in Windows zijn:
-
Opdrachtprompt openen.
-
Wijzig de map. In mijn geval was het commando:
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
-
Uitvoeren
mysql -u root -p --skip-binary-as-hex
-
Voer het wachtwoord in.
-
Nu, de outputs van
CHAR()
functie zal zijn zoals u verwacht.
Opmerking :De --skip-binary-as-hex
methode werkt totdat u MySQL afsluit. U moet --skip-binary-as-hex
. gebruiken methode elke keer dat u MySQL opent, zodat hexadecimale waarden niet worden weergegeven.
U kunt deze links raadplegen voor meer informatie:
- 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