2012-05-22 49 views
0
    上WAMP 2.20
  • MySQL版本目前
  • :5.5.20
  • PHP版本:5.3.10
  • 表归类:UTF8斌
  • header('Content-type: text/html; charset=utf-8');

虽然我可以看到保存在MySQL表中的数据是希腊字符,当我尝试从PHP回显它们时,它们变成“?”问号。广东话检索MySQL数据库希腊字符用PHP

+2

查看您的源码html查看正在生成中。可能你需要在浏览器正确渲染它们之前对字符进行编码。 – Jrod

+1

你也可以检查你的PHP文件的编码。 – Anas

+0

检查此[post](http://stackoverflow.com/questions/11806319/php-mysql-greek-letters-showing-like-marks)它的同样的问题。 – Marios

回答

4

确保您的客户端连接设置为UTF8。例子:

SQL

SET NAMES UTF8; 

PHP的MySQLi

mysqli_set_charset('utf8'); 

PHP PDO

$handle = new PDO("mysql:host=localhost;dbname=dbname", 
    'username', 'password', 
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8" 
)); 

PHP MySQL的(不建议使用 - 不使用

mysql_set_charset('utf8'); 
2

尝试使用htmlentities在回显您的数据之前对您的特殊字符进行编码。

echo htmlentities($data); 
2

确保你的文件正在使用ANSI as UTF-8保存又名UTF-8 without BOM。您可以使用记事本++做到这一点:http://npp-community.tuxfamily.org/documentation/notepad-user-manual/document-properties/encoding

而且,使用UTF-8(Unicode)的工作时,请记住:

  • 所有文件必须使用UTF-8编码保存;
  • MySQL表必须使用UTF-8;
  • MySQL中的字段必须是UTF-8;
  • PHP必须设置为使用UTF-8;
  • 一切都必须是UTF-8编码。
+0

thanx男人。你的支票救了我 – themis