PHP包括HTML页面的字符集问题
下面我已生成的HTML文件查询MySQL数据库使用的代码后:PHP包括HTML页面的字符集问题
$myFile = "page.htm";
$ FH =的fopen($ MYFILE, 'W')或死亡(“罐” t打开文件“); fwrite($ fh,$ row ['text']); fclose($ fh);
在msql db上,文本使用utf8_general_ci编码。 但我需要将其包含在PHP网页,如下图所示:
<?include('page.htm');?>
铭记的PHP网页上的标题上使用UTF-8字符集:
<meta http-equiv="content-type" content="text/html; charset=utf8" />
现在,如果我写的数据库一些字母与重音(èàì)或引号字符,我直接打开page.htm和分贝我看到这一切看起来不错,但是当我在php页面上查看它时,我看到一个问号 字符而不是我最初想要的。 为什么? 在此先感谢!
回答:
问题可能是在您的mySQL数据库或数据库连接中设置了错误的编码。
如果您的表格全部为100%utf8_general_ci
,请在执行任何查询之前尝试执行mysql_query("SET NAMES utf8;");
:这会将连接设置为UTF-8。
回答:
问题是,html页面的编码实际上是由http响应头'Content-Type'设置的,要解决你需要做的就是在你的PHP文件添加任何输出之前(即在最佳)。
<?php header('Content-Type: text/html; charset=utf8');
要澄清,这应该是在包含HTML文件的PHP,不在HTML文件时,包括:)
侧点(S):
- 这是好的做法是使用全开标签<?php而不是<?因为这不是所有(许多)服务器都支持的。
- include是一个语句而不是函数,所以通常你会写:include'page.htm';
回答:
META charset并不总能解决问题。确保你的IDE保存真正的UTF-8文件。例如,在Dreamweaver中按CTRL-J,然后选中标题/编码选项。
回答:
我解决了在php的网页中使用include添加这个header('Content-Type: text/html; charset=iso-8859-1');
。 我不知道它为什么有效。我从来没有使用ISO-8859-1字符集。 无论如何,谢谢!
回答:
如果您从数据库中获取东西,并且它会不明确地更改字符集,请注意,在Php中,实际的数据库连接字符集需要明确设置为utf8(如果这是您使用的),否则将转换内容而在传输时,即使数据库本身的内容格式正确。一个有趣的怪癖;)
像这样: mysql_select_db($ database,$ connect); mysql_set_charset('utf8',$ connect); //设置连接字符集。
当你使用include,它是一个PHP代码,所以你应该包括PHP文件,而不是一个htm文件:关于你的代码
回答:
一点
<?include('page.php');?>
尝试更改扩展名,我不知道你的代码是如何工作到现在为止:)
回答:
尝试 单独包含块。 Ex mainpage.php:
<?php include("php1.php");
?>
<?php
include("php2.php");
?>enter code here
以上是 PHP包括HTML页面的字符集问题 的全部内容, 来源链接: utcz.com/qa/260133.html