问题,简单而烦人。
我只是想打印从我的mysql数据库中收集的名单。
PHP文件保存在utf8中,数据库和表设置为使用utf8。例如,'å,ä,ö'输出为 。不敢相信我还有这个问题。
当然,Latin1解决了这个问题。问题是我必须使用utf8,因为我正在做一些json_encode来将数据发送到ajax脚本。
知道究竟什么是错的?
我应该在返回之前将数据转换为utf8吗?看起来很奇怪我应该......
答案 0 :(得分:4)
将utf8_general_ci
转换为utf8_unicode_ci
...
连接数据库后尝试运行SET NAMES UTF8
查询...
function connect($server, $database, $username, $password, $charset = "UTF8"){
$link = mysql_connect($server, $database, $password);
if(!$link){
die("Unable to connect to database server.");
}
mysql_selectdb($database);
if(function_exists("mysql_set_charset")){
mysql_set_charset($charset, $link);
}else{
mysql_query("SET NAMES $charset");
}
}
还要确保在HTML中有这个(或通过标题())...
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
答案 1 :(得分:0)
要做的两件事......
确保您的HTML标头发送了正确的字符集:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
将名称添加到阵列时使用utf_encode()
。你的行应该是
$guests[] = array_map('utf8_encode', $row);