• Determine the hexadecimal value of the character or characters that are not being displayed correctly . 

You can obtain this information for a column column_name  in the table table_name  using the following query: 

SELECT HEX( column_name ) FROM table_name ; 

3F  is the encoding for the ?  character; this means that ?  is the character actually stored in the column. This most often happens because of a problem converting a particular character from your client character set to the target character set. 

• Make sure that a round trip is possible. When you select literal  (or _introducer hexadecimal-value ), do you obtain literal  as a result ? 

For example, the Japanese Katakana character Pe  ( ペ ’ ) exists in all CJK character sets, and has the code point value (hexadecimal coding) 0x30da . To test a round trip for this character, use this query: 

SELECT ’ ペ ’ AS ‘ ペ ‘; /* or SELECT _ucs2 0x30da; */ 

If the result is not also ペ , the round trip failed. 

For bug reports regarding such failures, we might ask you to follow up with SELECT HEX(’ ペ ’); . Then we can determine whether the client encoding is correct. 

• Make sure that the problem is not with the browser or other application, rather than with MySQL . 

Use the mysql  client program to accomplish this task. If mysql  displays characters correctly but your application does not, your problem is probably due to system settings. 

To determine your settings, use the SHOW VARIABLES  statement, whose output should resemble what is shown here: 

mysql> SHOW VARIABLES LIKE ’char%’; +--------------------------+----------------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/local/mysql/share/mysql/charsets/ | +--------------------------+----------------------------------------+ 

These are typical character-set settings for an international-oriented client (notice the use of utf8 Unicode) connected to a server in the West ( latin1  is a West Europe character set). 

Although Unicode (usually the utf8  variant on Unix, and the ucs2  variant on Windows) is preferable to Latin, it is often not what your operating system utilities support best. Many Windows users find that a Microsoft character set, such as cp932  for Japanese Windows, is suitable. 

If you cannot control the server settings, and you have no idea what setting your underlying computer uses, try changing to a common character set for the country that you’re in ( euckr  = 

