Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP MySQL希腊字母显示类似????标志_Php_Mysql_Character Encoding - Fatal编程技术网

PHP MySQL希腊字母显示类似????标志

PHP MySQL希腊字母显示类似????标志,php,mysql,character-encoding,Php,Mysql,Character Encoding,我有一个带有一些文本的表,文本是希腊字母,当我使用sql工具并从中选择数据时,该表显示正确 但当我展示这个时,我的站点前端使用mysql_fetch数组,当echo显示如下 有人知道如何修复这个错误吗 谢谢。请尝试以下操作: 连接到mysql后,执行此查询以确保使用UTF8: mysql_query("SET NAMES 'utf8'"); mysql_query("SET CHARACTER SET 'utf8'"); 确保在HTML(head)中使用正确的编码,请尝试: <met

我有一个带有一些文本的表,文本是希腊字母,当我使用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,将此代码留给通过谷歌访问此网站的用户,因为他们有相同的问题,但使用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的补丁

    试试这个:

    mysqli_set_charset($con, "utf8");
    

    连接到DB之后。

    在实现希腊字符时,我遇到了同样的问题。像mysql这样的解决方案&
    query(“设置名称'utf8'”);
    
    mysql_查询(“设置字符集‘utf8’”)对我不起作用。在谷歌搜索之后,我发现数据库排序规则的字符集应该是
    希腊语\u general\u ci
    以及存储数据的字段,如categoryname等。这解决了我的问题。

    你不必删除表或任何东西。 使用MySQL Workbench并转到每个表。将排序规则更改为utf8-默认排序规则或utf8-常规ci。
    然后对Varchar类型的每一列执行相同的操作-它位于窗口底部。

    db、db连接、网页的字符编码是什么?简言之,它们应该是相同的lutf8_general_ci是字符编码read:但这是我所指的三件事的编码吗?这回答了你的问题吗?漂亮的马里奥。就这么简单。如果您使用的是mysqli,那么更改编码实际上是另一种方式。