episkeyyy
episkeyyy

Reputation: 109

Store Korean characters in MySQL

I have a form but every time I submit with Korean characters, it shows up in my phpmyadmin database as question marks or is extremely convoluted. I want to be able to submit entries in my MySQL database table using both latin and asian characters, also I'm using java in Eclipse.

I have already done the following:

and the following screenshots below. Many thanks in advance for any help.

enter image description here

enter image description here

enter image description here

Upvotes: 2

Views: 2914

Answers (2)

Rick James
Rick James

Reputation: 142528

When trying to use utf8/utf8mb4, if you see Question Marks (regular ones, not black diamonds),

  • The bytes to be stored are not encoded as utf8. Fix this.
  • The column in the database is CHARACTER SET utf8 (or utf8mb4). Fix this.
  • Also, check that the connection during reading is utf8.

When trying to use utf8/utf8mb4, if you see Black Diamonds with question marks, one of these cases exists:

Case 1 (original bytes were not utf8):

  • The bytes to be stored are not encoded as utf8. Fix this.
  • The connection (or SET NAMES) for the INSERT and the SELECT were not utf8/utf8mb4. Fix this.
  • Also, check that the column in the database is CHARACTER SET utf8 (or utf8mb4).

Case 2 (original bytes were utf8):

  • The connection (or SET NAMES) for the SELECT was not utf8/utf8mb4. Fix this.
  • Also, check that the column in the database is CHARACTER SET utf8 (or utf8mb4).

Black diamonds occur only when the browser is set to <meta charset=UTF-8>

Note: euckr is not the same as utf8. It can be handled, but different steps are needed.

Upvotes: 3

Danny Lacks
Danny Lacks

Reputation: 76

I recommend you take everything out of the equation except the database to ensure the problem really is with the database. First examine the values in hexadecimal:

SELECT HEX(column_name) FROM table_name

If you see "3F" where you are seeing "?", then there is most likely a problem with the data coming from your web application (more help here in section A.11.2 like using SET NAMES and changing the MySQL INI file). You should also try manually inserting hexadecimal into the database table and selecting it back both normally and as hexadecimal to ensure the data is going in and out correctly.

If you still suspect a database problem, ensure your table is encoding the character set (i.e. DEFAULT CHARSET) correctly, for example (or other examples):

SHOW CREATE TABLE table_name

Upvotes: 2

Related Questions