PHP-php生成HTML页面后页面编码不对

发布于 2016-12-07 21:00:43 字数 394 浏览 1307 评论 4

各位好,请教个问题
我用

$s_fname = "tmps.php";
$o_fname = "index.html";
ob_end_clean();
ob_start();
include($s_fname);
$length = ob_get_length();
$buffer = ob_get_contents();
$buffer = eregi_replace("r","",$buffer);
ob_end_clean();

$fp = fopen($o_fname,"w+");
fwrite($fp,$buffer);
fclose($fp);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

泛泛之交 2017-08-27 08:09:29

确保你的代码文件和几个引用的文件本身是utf8编码的,使用记事本或editplus另存为时可以查看和修改文件的字符集。

归属感 2017-04-09 08:54:55

 fwrite($fp,$buffer);

写文件时,如果$buffer的内容编码是gbk,则最后文件的编码是gbk,$buffer的内容编码是utf8则文件编码是utf8;

看你问题的表现好像$buffer的内容不是utf8编码的,建议在写入之前将$buffer的内容通过iconv强制转换成utf8 试试!

想挽留 2017-03-04 16:19:14

话说,你的浏览器如果是硬修改成 gb2312 的话,浏览器就会忽略页面的 meta content 信息
另外推荐加上 dtd,让生成的页面有类似的信息,重点是 语言 和 字符集

<html xmlns='http://www.w3.org/1999/xhtml' dir='ltr' xml:lang="zh-CN">
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />

然后就是用户浏览器的字符集要选择成 自动
更多相关设置,清查看 这里

更新
刚发现,你原始php代码里面有这么一句 (第八行)
$buffer = eregi_replace("r","",$buffer);
这样子会把所有输出的内容的 r 字符都干掉!!!

祝好,
斑驳敬上

归属感 2017-02-04 00:23:17

在代码开始的地方加上:

 header("Content-type: application/javascript; charset=utf-8");

内容如果还有中文用iconv转换一下试试

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文