Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 发送UTF8标题时页面上的黑色菱形问号字符 我在MySQL 4.1服务器上有一个旧的数据库,DB包含一些用户输入的内容,我已经把这个数据库复制到一个新的MySQL 5服务器,当我看到一个页面上的内容被打印时,我看到中间有问号的黑色菱形字符。这仅在新服务器上显示_Php_Mysql_Utf 8_Character Encoding - Fatal编程技术网

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?可能不需要转换数据库,您只需告诉连接对象所需的字符集(在执行查询之前)。查看已经给出的答案,或者看一看。