使用PHP从SQL中读取utf-8/希腊字符

使用PHP从SQL中读取utf-8/希腊字符,php,sql,character-encoding,phpmyadmin,Php,Sql,Character Encoding,Phpmyadmin,问题就在这里 我在SQL中的大多数条目都是希腊文的。我使用的排序规则是utf8\u general\u ci 如果我使用phpmyAdmin在数据库中手动添加条目,我可以看到希腊语的值。但是,当我尝试使用php获取该值时,我带回了 这是我的密码: $result=mysql_query("SELECT name,type,lat,lon FROM map p WHERE p.place='$place' "); mysql_set_charset("utf-8"); 另一方面,如果我像

问题就在这里

我在SQL中的大多数条目都是希腊文的。我使用的排序规则是utf8\u general\u ci

如果我使用phpmyAdmin在数据库中手动添加条目,我可以看到希腊语的值。但是,当我尝试使用php获取该值时,我带回了

这是我的密码:

$result=mysql_query("SELECT name,type,lat,lon FROM map p WHERE p.place='$place' ");


  mysql_set_charset("utf-8");
另一方面,如果我像这样使用php添加这些值:

$query= "INSERT INTO posts(name,title,type,address,url,place) VALUES('$name','$title',$type,'$address','$url','$place')";

mysql_set_charset("utf-8");
Στο κέντÏο της γÏαφικής ΑÏάχωβας, το ξενοδοχείο Ευ Ζην Studios & Suites απ
在我的php my admin中,我看到如下值:

$query= "INSERT INTO posts(name,title,type,address,url,place) VALUES('$name','$title',$type,'$address','$url','$place')";

mysql_set_charset("utf-8");
Στο κέντÏο της γÏαφικής ΑÏάχωβας, το ξενοδοχείο Ευ Ζην Studios & Suites απ
但我可以用希腊文取,如果我用那个代码:

$result=mysql_query("SELECT name,title,type,address,url,place FROM posts p WHERE p.place='$place' ORDER BY p.IdPost LIMIT 50");
  mysql_set_charset("utf-8");
演示代码引用了不同的表,但问题发生在这两个表中

因此,当手动添加它们时,我可以在SQLPHPMYADMIN中看到希腊内容,但无法在php中获取它们

如果我从php添加它们,我看不到添加了什么值,但我可以正常检索它


理想情况下,我希望在phpmyadmin上看到希腊文,并在php端阅读希腊文,而不是在php应用程序中阅读???

,连接到MySQL后,执行以下查询一次:

mysql_查询集名称为“UTF8”

mysql_set_charset("utf8");
MySQL中的字符集称为utf8,而不是utf-8。 您需要在对数据库执行任何其他操作之前调用此函数,而不是在发送查询之后。这个调用告诉MySQL您将以何种编码发送数据,查询将以何种编码返回数据,这需要在来回发送数据之前进行。
始终使用本机客户端API调用,不要设置名称。此函数仅在PHP5.2.23.5.2.3(将近7年)之后才可用。这真的不应该是任何争论。