9

Non-english characters are messed up in a text column. Arabic text looks like this:

نـجـم سـهـيـل

How to store non-english characters correctly?

Yeti
  • 5,628
  • 9
  • 45
  • 71

3 Answers3

12

You should consider using utf8 to store your text.

You can do this at the database creation:

CREATE DATABASE mydb
  DEFAULT CHARACTER SET utf8
  DEFAULT COLLATE utf8_general_ci;

You can also configure mysql at installation or at startup to use utf8 (see Mysql manual)

The mysql manual pages cover all aspects of characterset and collations: http://dev.mysql.com/doc/refman/5.0/en/charset.html

The character set of the connection can be changed by

SET CHARACTER SET utf8

More details here and in the chapter Character set support

marapet
  • 54,856
  • 12
  • 170
  • 184
2

What OS are you using?

If Linux then it's good to have a system locale set to utf8 also, like "en_US.utf8".

And, to be sure, issue an "SET NAMES UTF8" command to mysql just after connection.

(db character set/collation must also be utf8)

zed_0xff
  • 32,417
  • 7
  • 53
  • 72
2

The query below solved the issue.

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
JJJ
  • 32,902
  • 20
  • 89
  • 102
Prateek
  • 53
  • 6