This article describes how to solve the problem of garbled characters in MySQL return parameters of Java programs. it uses examples to explain the configuration of UTF-8 encoding in MySQL, for more information about MySQL character set, see. In Windows, you can modify
Default-character-set = utf8 // default character set of the client
In the MySQL client tool, enter
SHOW VARIABLES LIKE 'character%';
Shown below
In this way, garbled characters are returned after reading information. the solution is to execute a set names 'utf8' query before reading data after connecting to the database.
The simplest and perfect modification method is to modify the character set key value in mysql's my. cnf File (pay attention to the configuration field details ):
1. add default-character-set = utf8 to the [client] field, as shown below:
port = 3306 socket = /var/lib/mysql/mysql.sock default-character-set=utf8
2. add character-set-server = utf8 to the [mysqld] field as follows:
port = 3306 socket = /var/lib/mysql/mysql.sock character-set-server=utf8
3. add default-character-set = utf8 to the [mysql] field, as shown below:
no-auto-rehash default-character-set=utf8
After the modification, the service mysql restart restarts the mysql service to take effect. Note: The [mysqld] field is different from the [mysql] field. No one has reported this on the Internet.
Use show variables like 'character % '; check that the database encoding has been changed to utf8.
+--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+
4. if all the above changes are garbled, the remaining problems must be on the connection layer. The solution is to execute the following statement (directly at the beginning of the SQL file) before sending the query ):
SET NAMES ‘utf8′;
It is equivalent to the following three commands:
SET character_set_client = utf8; SET character_set_results = utf8; SET character_set_connection = utf8;
Many other methods on the Internet cannot completely solve this problem, which can be perfectly solved!