Före MySQL 8.0.19 fanns inte problemet som du står inför. binary-as-hex
klientalternativet är aktiverat som standard från MySQL 8.0.19.
Kör status
eller \s
i MySQL. Du kommer att märka en rad om binära data. Om det nämns som hexadecimalt, utdata av funktioner som CHAR()
och UNHEX()
kommer att visas som hexadecimal istället för normal text.
För att undvika detta kan du använda USING charset-satssatsen för 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)
Eller så kan du använda --skip-binary-as-hex
. Stegen att följa i Windows är:
-
Öppna kommandotolken.
-
Byt katalog. I mitt fall var kommandot:
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
-
Kör
mysql -u root -p --skip-binary-as-hex
-
Ange lösenordet.
-
Nu, utdata från
CHAR()
funktionen blir som du förväntar dig.
Obs :--skip-binary-as-hex
Metoden fungerar tills du avslutar MySQL. Du måste använda --skip-binary-as-hex
metod varje gång du öppnar MySQL så att hexadecimala värden inte kommer att visas.
Du kan hänvisa till dessa länkar för mer information:
- 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