MYSQL - Turkish character

mysql

Solution

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" ...>

Problem

I retrieve datas from mysql This is normally which i have in db This is normally i have in db ``` Seçimler, Şirketler ve Siyasi Partiler ``` it prints ``` Se�imler, ?irketler ve Siyasi Partiler ``` I use sql yog and change some preferences in my db i set Charset to UTF8 and Collation is utf8_turkish_ci but still retrieve datas like that ``` Se�imler, ?irketler ve Siyasi Partiler ``` why? What's the problem ?

Original source