【问题标题】:Is it bad to set a webpage's Content Type?设置网页的内容类型不好吗?
【发布时间】:2014-02-18 11:08:26
【问题描述】:

我是巴西人,在这里工作/生活。对于那些不知道的人,葡萄牙语有很多带有重音字母的单词。而且我也知道,如果你没有正确使用charset,你所有的重音字母在渲染到浏览器时都会变成垃圾。

所以,在我的日常工作中,我总是在我老板的代码(这不是最精心编写的那种)中看到 & 符号(如果有名字,请告诉我)。因此,例如,这些到处都是:

Formulário
Relatório
Exclusão

我知道您可以在服务器和客户端上设置网页的字符集,因此一直在我的网页中执行此操作(顺便说一句,我们一直在使用 ASP.NET WebForms)...

<%@ Page (...) ContentType="text/html; charset=utf-8" %>

然后,在&lt;head&gt;

<meta charset="utf-8" />

但我的老板看到了这一点,并说这是一种不好的做法。我用谷歌搜索了一下,没有发现任何资源说这实际上是一种不好的做法。有时我的老板说好的做法是坏的。然后他告诉我把我所有的带重音符号的字母都换成与符号对应的字母。如果真的是更好的做法,我会这样做。

那么,TL;DR:是设置网页的内容类型还是使用“& 符号”更好?

【问题讨论】:

    标签: html asp.net character-encoding webforms content-type


    【解决方案1】:

    W3C 的an article on character encoding 非常有用。他们对此的看法是:

    您应该始终指定用于 HTML 或 XML 页面的编码。 如果不这样做,您将面临内容中的字符不正确的风险 解释。这不仅仅是人类可读性的问题, 越来越多的机器也需要理解您的数据。

    此外,根据&lt;meta&gt; 元素上的MDN article,最好指定字符集,因为它可以保护您的用户免受某些跨脚本攻击:

    定义角色是一种很好的做法,并且强烈推荐 使用此属性设置。如果没有为页面定义字符集, 几种跨脚本技术可能会变得实用,以损害 页面用户,例如 UTF-7 后备跨脚本技术。总是 设置此元数据将防止这些风险。

    尽管在极少数情况下无法指定内容类型,但普遍的看法似乎是指定内容类型是一种很好的做法。如果你这样做得当,那么就不需要使用特殊字符的 HTML 表示(我认为这会使你的代码更难阅读)。

    【讨论】:

    • 很好的答案得到了极大的支持。我可以将其视为“ContentType 方法是一种更好的做法”吗? (这是我的结论,但我觉得我对此有点偏见)
    • @AndréLeria 是的,在我看来,指定内容类型是更好的做法,尽管在极少数情况下这是不可能的,但普遍认为 ii 是一种很好的做法所以。
    【解决方案2】:

    “更好”有点主观。这两种方法各有利弊。

    使用合理的字符编码:

    • 为您提供更具可读性的代码
    • 为您提供更小的代码

    使用字符引用:

    • 意味着您不必关心编码
    • 允许将页面复制到带有错误 HTTP 标头的某处并且仍然有效

    【讨论】:

    • 我喜欢第一句话。也许这解释了为什么我的老板认为很多不好的做法是“更好的”。
    猜你喜欢
    • 2010-12-27
    • 2021-04-19
    • 1970-01-01
    • 2021-07-06
    • 2014-05-25
    • 2015-03-10
    • 1970-01-01
    • 2012-12-29
    • 2012-10-19
    相关资源
    最近更新 更多