我有一个带有一些文本的表格,并且文本是希腊字母,当我使用 sql 工具并从该表格中选择数据时正确显示
但是当我使用 mysql_fetch 数组显示我的网站前端时,当 echo 显示如下
任何人都知道如何解决此错误,谢谢。
我有一个带有一些文本的表格,并且文本是希腊字母,当我使用 sql 工具并从该表格中选择数据时正确显示
但是当我使用 mysql_fetch 数组显示我的网站前端时,当 echo 显示如下
任何人都知道如何解决此错误,谢谢。
尝试以下操作:
连接到 mysql 后,执行以下查询以确保您使用的是 UTF8:
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
确保在 HTML (head) 中使用正确的编码,尝试:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
如果这没有帮助,请尝试不同的编码,例如 ISO-8859-1
试试这个:
mysqli_set_charset($con, "utf8");
连接到数据库后。
把这个留给那些通过谷歌来到这个网站的人,因为他们有同样的问题,但使用 PDO 代替(像我一样) - 你应该没问题:
$dns = "mysqli:host=localhost;dbname=db_name";
$pdo = new PDO($dns, 'db_user', 'db_pass',
array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
$pdo->exec("SET CHARACTER SET 'utf8'");
我浪费了很多时间,直到我弄清楚了。
简介: 希腊字符在 mysql 中出现错误。我在 PHP 中应用了 qxxx答案并且工作正常。然后我不得不将所有内容迁移到新主机上,然后问题再次出现。
什么问题?
MySQL 的模式字符集设置为拉丁文。存储过程为其参数继承了 MySQL 的模式字符集。
所以我做了什么:
删除 MySQL 过程/函数(确保备份代码)
更改了 MySQL 的默认字符集(使用 MySQL Workbench,右键单击您的数据库名称 - 有一个 db 图标..)
重新创建 MySQL 过程/函数
另外,我完整地保留了qxxx的修复程序!
您不必删除表或任何东西。使用 MySQL Workbench 并转到每个表。将排序规则更改为 utf8 - 默认排序规则或 utf8 - 通用 ci。然后对类型为 Varchar 的每一列执行相同的操作 - 它位于窗口底部。
我在实现希腊字符时遇到了同样的问题。像 mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
这样的解决方案对我不起作用。谷歌搜索后,我发现数据库排序规则的字符集应该greek_general_ci
与存储数据的字段(如类别名称等)一起制作。这解决了我的问题。