从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/