问题:外文字符没有按原样显示。这包括德语、日语、俄语和除英语以外的所有其他语言(效果非常好)。php通过jquery ajax调用调用mysql时,它应该返回信息并显示在页面上。调用并显示数据。但是,对于非英文字符,结果显示为“?”.
在phpmyadmin中,显示的数据应该是日文、德文等格式的。但是从mysql中获取的数据则不返回。
该问题不是由浏览器引起的,因为我的浏览器支持所有语言编码。
mysql编码:utf8_general_ci
页面编码:UTF-8
<meta charset="utf-8" />
问题可能在于php从mysql获取数据,因为在通过phpmyadmin查看的mysql数据中,这似乎很好。下面是从mysql获取这些数据的代码。除非编码必须包含在此文件中。
php(从mysql获取所需数据可能是返回编码问题的原因之一?(?)
$q = mysql_query("SELECT * FROM `notice` WHERE nid = '".$nid."'");
$a = mysql_fetch_array($q);
$nid = stripslashes($a['nid']);
$note = stripslashes($a['note']);
$type = stripslashes($a['type']);
$private = stripslashes($a['private']);
$date = stripslashes($a['date']);
$author = stripslashes($a['author'])
;
注:为了更清楚起见,编辑过。
最佳答案
您很可能需要将数据库连接的字符集设置为utf-8。
如何做到这一点取决于您正在使用的数据库库。
在旧的mysql库中
mysql_query("SET NAMES utf8");
(MySQL 5.0.7之前的版本)和
mysql_set_charset("utf8");
对于mysql 5.0.7及更新版本。