将utf8转换为utf 8

时间:2014-10-29 19:51:40

标签: php

文件

  • index.php:

    <?php
    include_once 'index_a.php';
    ?>
    
  • index_a.php:

    <html>
        <head>
            <title>test</title>
        </head>
        <body>
            casa
        </body>
    </html>
    

结果

第一个结果来自index.php和第二个index_a.php

first result is from the index.php and the second index_a.php

为什么我要捍卫这些报价?

如果index_a.php转换UTF-8中没有BOM的文件,则不会出现引号,但我希望文件以UTF-8编码。

2 个答案:

答案 0 :(得分:2)

你的问题没有意义:UTF8文件编码可能(但不应该,因为UTF8的字节顺序是固定的)有一个BOM。在这两种情况下,您的文件都将采用UTF8编码,因此您已经完成了。这里发生的事情是你问XY question

那么,你真正想要知道的是:为什么这些报价出现在没有BOM的普通UTF8编码文件中,但是当有BOM时却没有,而答案就是那个您提供的浏览器HTML代码可以是任何版本的HTML,并希望它知道您要呈现的版本。

在不了解文档类型的情况下,浏览器可能会或可能不会将标记之间的任何空格视为单个空格,或者不是空格,这取决于它所猜测的渲染模式。因此,如果您真的不想要那个" ",那么您不应该依赖文件编码,那么您应该向浏览器明确说明您所做的事情。重新给它渲染是正确的HTML。添加

<!doctype html>

在顶部,以便所有浏览器都知道这是一个现代的HTML5内容文件,应该相应地进行解析,而不是回到不可预知的怪癖模式。

修改

http://jsbin.com/helikafuni/1/显示正确的HTML5文档类型和元素使用(您使用古老的 HTML4.1语法。现在是时候阅读HTML5如何改变了很多规则并使用这些新规则)

答案 1 :(得分:0)

如果您想更改文件的编码,我建议您使用Notpad++

安装后,您可以在其中打开文件并更改编码,如下所示:

(参见“转换为UTF-8”一节)

enter image description here

更新:

这应该适合你:

的index.php:

<?php
    include_once 'index_a.php';
?>

index_a.php:

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>test</title>
    </head>
    <body>
        casa
    </body>
</html>