MYSQL - 土耳其字符

时间:2012-05-04 06:45:06

标签: mysql

我从mysql

中检索数据

这通常是我在db

中所拥有的

这通常是我在db

Seçimler, Şirketler ve Siyasi Partiler

打印

Se�imler, ?irketler ve Siyasi Partiler

我使用sql yog并在我的数据库中更改一些首选项

我将Charset设置为UTF8,Collat​​ion为utf8_turkish_ci

但仍然检索那样的数据

Se�imler, ?irketler ve Siyasi Partiler

为什么呢?有什么问题 ?

3 个答案:

答案 0 :(得分:13)

这个问题听起来像你错过了在某处指定字符编码。要解决这个问题,只需确保将字符编码设置为 utf-8 everythere (它实际上不需要是utf-8,只需相同的 - 但如果你搞砸了某些事情并且需要改变一些地方,我强烈建议使用utf-8):

  • 告诉MySQL使用utf-8。为此,请将此添加到my.cnf:

    collation_server = utf8_unicode_ci
    character_set_server = utf8
    
  • 在与mysql交互之前,发送这两个查询:

    SET NAMES 'utf8';
    CHARSET 'utf8';
    

    或者,让php在打开连接后执行此操作:

    mysql_set_charset('utf8', $conn);
    
  • 将UTF-8设置为数据库的默认字符集

    CREATE DATABASE `my_db` DEFAULT CHARACTER SET 'utf8';
    
  • 对表格执行相同的操作:

    CREATE TABLE `my_table` (
      -- ...
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
  • 假设客户端是浏览器,请将您的内容作为utf-8和正确的标头提供:

    header('Content-type: text/html; charset=utf-8');
    

    要确定浏览器能够理解,请添加元标记:

    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    
  • 最后但并非最不重要的是,告诉浏览器使用utf-8提交表单

    <form accept-charset="utf-8" ...>
    

答案 1 :(得分:1)

您还需要在选择查询中提及Charset to UTF8

SET NAMES 'utf8';
CHARSET 'utf8';

答案 2 :(得分:1)

让我与众不同的是添加以下几行:

  

collat​​ion_server = utf8_unicode_ci

     

character_set_server = utf8

到my.ini文件(在文档末尾)我已经尝试了其他所有内容,但在我做出此更改之前它们都失败了。这真的是一个很大的帮助。谢谢oezi。