【问题标题】:W3C declaration is missing缺少 W3C 声明
【发布时间】:2023-09-12 07:19:01
【问题描述】:

我制作了多语言网页,我使用 HTML5,但为什么我尝试在 W3C 中验证时出错:

Line 4, Column 11: No explicit character encoding declaration has been seen yet (assumed utf-8) but the document contains non-ASCII.

<title>Viešbutis Graikijoje</titl…

..但是我的标题包含 utf-8 字符集:

<!DOCTYPE html>
<html lang="en">
<head>
<title><?php echo $title?></title>
<meta name="robots" content="index, follow" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

我读过其他帖子,上面说你需要使用 utf-8 字符集,但我确实使用它.. 我也试过 put

    AddType 'text/html; charset=UTF-8' html

..in .htaccess 文件,但它不起作用。有任何想法吗?

【问题讨论】:

    标签: php html character-encoding w3c w3c-validation


    【解决方案1】:

    &lt;title&gt; 中有非 ascii 字符,但您声明文档为 UTF8 的 &lt;meta&gt; 标记尚未出现。

    将内容类型&lt;meta&gt;标签移动到&lt;head&gt;中的第一个元素:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title><?php echo $title?></title>
    <meta name="robots" content="index, follow" />
    

    虽然 .htaccess 中的 AddType 指令是个好主意,但如果(并且如果)从该目录提供的每个具有 .html 扩展名的文档都是带有字符集的 HTML UTF8,W3 验证器仍然希望您在文档中显式声明字符集。

    还要注意,在编写 XHTML 时,它们将允许您在 XML 声明中声明它:

    <?xml version="1.0" encoding="utf-8" ?>
    

    【讨论】:

      【解决方案2】:

      放文字

      <meta charset="utf-8"/>
      

      之间

      <head></head> 
      

      标签。

      另外,检查文件是否使用 UTF-8 编码保存。检查你的编辑器。

      【讨论】: