PHP include html page charset problem

廉价感情. 提交于 2019-12-05 11:53:33

The problem is that the encoding of the html page is actually set by the http response header 'Content-Type', to fix what you need to do is add the following to your PHP file before any output (ie at the top).

<?php
header('Content-Type: text/html; charset=utf8');

To clarify, that should be in the PHP that includes your html file, not in the html file you include :)

side point(s):

  1. It's good practise to use the full opening tag <?php rather than <? as this isn't supported by all (many) servers
  2. include is a statement not a function, so typically you'd write: include 'page.htm';

META charset isn't always solve the problem. Make sure your IDE saving real UTF-8 files. For exanple in Dreamweaver press CTRL-J then check Title/Encoding options.

I solved adding this header('Content-Type: text/html; charset=iso-8859-1'); in the php webpage with the include. I don't know why it works. I never used iso-8859-1 charset. Thanks anyway!

If you are getting stuff from a database, and it changes charset inexplicitly, note that in Php the actual connection charset to the db needs to be set explicitly to utf8 (if that's what you use), otherwise the content is converted while transfered, even if the content in the db itself is in correct format.. an interesting quirk ;)

Like so: mysql_select_db($database, $connect); mysql_set_charset('utf8', $connect); // set the connection charset.

The problem is probably with a wrong encoding set in your mySQL database, or the database connection.

If your tables are all 100% utf8_general_ci, try doing a mysql_query("SET NAMES utf8;"); before doing any queries: That will set the connection to UTF-8.

One point about your code:

when you use include, it is a php code, so you should include a php file, not a htm file:

<?include('page.php');?>

try changing the extension, I don't know how your code were working till now :)

Try separate includes blocks. Ex mainpage.php:

<?php
 include("php1.php");
?>

<?php
 include("php2.php");
?>enter code here
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!