MYSQL——土耳其字符

标签 mysql

从mysql中获取数据

这通常是我在数据库中的

这通常是我在数据库中的

Seçimler, Şirketler ve Siyasi Partiler

它打印

Se�imler, ?irketler ve Siyasi Partiler

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

我将字符集设置为 UTF8,排序规则为 utf8_turkish_ci

但仍然会像那样检索数据

Se�imler, ?irketler ve Siyasi Partiler

为什么?有什么问题 ?

最佳答案

这个问题听起来好像您没有在某处指定字符编码。要解决这个问题,只需确保您已将字符编码设置为 utf-8 everywere(它实际上不需要是 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 提供:

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

关于MYSQL——土耳其字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10444004/

相关文章:

php - 无法从 mysql 数据库获取用户数据

php登录页面没有任何反应

MySQL解释: how to calculate total examined rows?

PHPExcel 未插入 MySQL 数据库

mysql - 在一个 select 语句中重复 if

mysql - 使用 jQuery AJAX 请求 CodeIgniter 在不刷新页面的情况下从 Controller 显示数据库中的数据到 View

mysql - 记录从特定表中删除,每次留下完全相同数量的记录 (54)

Mysql Azure 无法与 Laravel 连接

php - 从标签区域获取值(类似于stackoverflow)并将其保存到数据库中

php - 在 Google 饼图中按列值/类别对行进行分组