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):

  1. 这是好的做法是使用全开标签<?php而不是<?因为这不是所有(许多)服务器都支持的。
  2. 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

回到顶部