Php 发送UTF8标题时页面上的黑色菱形问号字符 我在MySQL 4.1服务器上有一个旧的数据库,DB包含一些用户输入的内容,我已经把这个数据库复制到一个新的MySQL 5服务器,当我看到一个页面上的内容被打印时,我看到中间有问号的黑色菱形字符。这仅在新服务器上显示
如果我将此标题添加到页面,菱形将不再显示:Php 发送UTF8标题时页面上的黑色菱形问号字符 我在MySQL 4.1服务器上有一个旧的数据库,DB包含一些用户输入的内容,我已经把这个数据库复制到一个新的MySQL 5服务器,当我看到一个页面上的内容被打印时,我看到中间有问号的黑色菱形字符。这仅在新服务器上显示,php,mysql,utf-8,character-encoding,Php,Mysql,Utf 8,Character Encoding,如果我将此标题添加到页面,菱形将不再显示: header('Content-Type: text/html; charset=iso-8859-1'); 如果我取出这个头,那么服务器会发送一个如下所示的默认头,菱形会重新出现 内容类型:text/html;字符集=UTF8 我如何在db中解决这个问题(例如,表上的某种转换),这样我就不必在所有页面中都放上这个标题 更多信息:我使用mysqldump从旧服务器导出数据库,然后使用centosmysql命令行导入它。我也尝试过使用phpMyAdmi
header('Content-Type: text/html; charset=iso-8859-1');
如果我取出这个头,那么服务器会发送一个如下所示的默认头,菱形会重新出现
内容类型:text/html;字符集=UTF8
我如何在db中解决这个问题(例如,表上的某种转换),这样我就不必在所有页面中都放上这个标题
更多信息:我使用mysqldump从旧服务器导出数据库,然后使用centosmysql命令行导入它。我也尝试过使用phpMyAdmin导出,但结果相同
编辑:
查看我的mysqldump文件,我可以看到所有CREATE TABLE语句都有charset=Latin1,所以我想我要寻找的是一种以UTF8格式导出数据库的方法。我已尝试将此选项添加到mysqldump,但没有任何效果,转储仍然显示Latin1:
--默认字符集=utf8
连接到数据库后,请尝试设置字符集:
mysql_set_charset("utf8");
连接到数据库后,请尝试设置字符集:
mysql_set_charset("utf8");
连接mysql数据库后使用下面的查询
mysql_query("SET NAMES utf8");
希望这有帮助 连接mysql数据库后使用下面的查询
mysql_query("SET NAMES utf8");
希望这有帮助 特雷弗说的话对我有用,除了我的Qli
$mysqli->set_charset("utf8");
特雷弗说的对我有用,除了我的Qli
$mysqli->set_charset("utf8");
这意味着从数据库返回的数据是用拉丁文1编码的,而不是UTF-8编码的,因此您得到的编码不匹配。看。@deceze我想你是对的,看我的编辑。是否有办法将拉丁1数据导出为UTF8?可能不需要转换数据库,您只需告诉连接对象所需的字符集(在执行查询之前)。查看已经给出的答案,或者看一看。这意味着从数据库返回的数据是用拉丁文1编码的,而不是UTF-8编码的,因此您得到的编码不匹配。看。@deceze我想你是对的,看我的编辑。是否有办法将拉丁1数据导出为UTF8?可能不需要转换数据库,您只需告诉连接对象所需的字符集(在执行查询之前)。查看已经给出的答案,或者看一看。