使用下面的代码查询 mysql 数据库后,我生成了一个 html 文件:
$myFile = "page.htm";
$fh = fopen($myFile, 'w') 或 die("无法打开文件");
fwrite($fh, $row['文本']);
fclose($fh);
在 mysql 数据库上,文本使用 utf8_general_ci 进行编码。
但我需要将它包含在 php 网页中,如下所示:
<?include('page.htm');?>
请记住,php 网页在标头上使用 utf8 字符集:
<meta http-equiv="content-type" content="text/html; charset=utf8" />
现在,如果我在数据库上写一些带有重音符号(è à ì)的字母或引号字符,然后直接打开page.htm,在数据库上我看到一切看起来都不错,但是当我在php页面上查看它时,我看到一个问号 – 字符而不是我最初想要的字符。
为什么?!
提前致谢!
问题是 html 页面的编码实际上是由 http 响应标头“Content-Type”设置的,要修复您需要做的是将以下内容添加到 PHP 文件中的任何输出之前(即在顶部)。
<?php
header('Content-Type: text/html; charset=utf8');
澄清一下,这应该在包含 html 文件的 PHP 中,not在您包含的 html 文件中:)
侧面观点:
- 最好使用完整的开始标记
- include 是一个语句而不是一个函数,因此通常您会编写: include 'page.htm';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)