MYSQL - Turkish character
this problem sounds like you've missed to specify a character encoding somewhere. to solve this, simply make sure you've set character encoding to utf-8 everywere (it doesn't actually need to be utf-8, just the same everywhere - but if you've messed up something and need to change some places anyway, i'd strongly recommend using utf-8):
-
tell MySQL to use utf-8. to do this, add this to your my.cnf:
collation_server = utf8_unicode_ci character_set_server = utf8
-
before interacting with mysql, send this two querys:
SET NAMES 'utf8'; CHARSET 'utf8';
or, alternatively, let php do this afteropening the connection:
mysql_set_charset('utf8', $conn);
-
set UTF-8 as the default charset for your database
CREATE DATABASE `my_db` DEFAULT CHARACTER SET 'utf8';
-
do the same for tables:
CREATE TABLE `my_table` ( -- ... ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
assuming the client is a browser, serve your content as utf-8 and the the correct header:
header('Content-type: text/html; charset=utf-8');
to be really sure the browser understands, add a meta-tag:
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
-
and, last but not least, tell the browser to submit forms using utf-8
<form accept-charset="utf-8" ...>
You need to mention Charset to UTF8
in your selection query too.
SET NAMES 'utf8';
CHARSET 'utf8';
What made the difference for me was to add these lines:
collation_server = utf8_unicode_ci
character_set_server = utf8
to my.ini file (at the end of the document) I have tried everything else but they all failed until I made this change. It's really been a great help. Thanks oezi.