Php 为什么htmlentities返回空字符串?

Php 为什么htmlentities返回空字符串?,php,Php,htmlentities为什么返回空字符串: <?php session_start(); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Index</title>

htmlentities为什么返回空字符串:

<?php
session_start();
?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

    <html>

    <head>
        <title>Index</title>
        <link rel="stylesheet" type="text/css" href="../stijlen.css" />
        <meta charset="UTF-8">

        <style>
        @charset "UTF-8"    

        </style>

    </head>

    <body>
        <h2>Main index</h2>


        <?php
            echo(htmlentities("José", ENT_NOQUOTES, "UTF-8"));
        ?>
    </body>
</html>

指数
@字符集“UTF-8”
主要指标

如果我省略函数的“UTF-8”部分,它就可以正常工作。“é”造成了问题,但我不明白为什么。为什么这是一个无效字符?

您的源文件不是UTF8格式。缔约国指出:

如果输入字符串在给定编码中包含无效的代码单元序列,则将返回空字符串,除非设置了ENT_IGNORE或ENT_SUBTATE标志


您的源文件是否没有UTF8编码?您的完整文件是否也以UTF-8格式存储?如果您有一个ISO文件,并且在编码中定义了UTF-8,那么您就会遇到这个问题。编辑:我确实尝试将该文件保存为“UTF-8”,但随后收到一条关于会话_start()的错误消息;警告:session_start()[function.session start]:无法在第2行/home/st016/domains/domain/domain.nl/public_html/portal/index.php:1)中发送会话缓存限制器-已发送的头(输出从/home/st016/domains/domain.nl/public_html/portal/index.php开始)