我是巴西人,在这里工作/生活。对于那些不知道的人,葡萄牙语有很多带有重音字母的单词。而且我也知道,如果你没有正确地使用charset
,所有重音字母在渲染到浏览器时都会变成垃圾。
所以,在我的日常工作中,我总是在老板的代码中找到(这不是最精心编写的)&符号模式(如果这有一个名字,请告诉我)。所以,例如,这些都到处都是:
Formulário
Relatório
Exclusão
我知道你可以在服务器和客户端上设置网页的字符集,一直在我的网页中这样做(BTW我们一直在使用ASP.NET WebForms)......
<%@ Page (...) ContentType="text/html; charset=utf-8" %>
然后,在<head>
:
<meta charset="utf-8" />
但是我的老板看到了这个,并说这是一个不好的做法。我搜索了一下,发现没有资源说它实际上是一种不好的做法。曾经有一段时间,我的老板说好的做法很糟糕。然后他告诉我用他们的&符号替换我所有的重音字母。如果这真的是一种更好的做法,我会这样做。
所以, TL; DR :设置网页的内容类型或使用“&符号模式”更好吗?
答案 0 :(得分:2)
“更好”有点主观。两种方法都有利弊。
使用合理的字符编码:
使用字符引用:
答案 1 :(得分:2)
W3C有an article on character encoding非常有用。他们对此的看法非常多:
您应始终指定用于HTML或XML页面的编码。 如果不这样做,则可能会导致内容中的字符不正确 解释。这不仅仅是人类可读性的问题, 越来越多的机器也需要了解您的数据。
此外,根据<meta>
元素上的MDN article,最好指定charset,因为它可以保护您的用户免受某些跨脚本攻击:
强烈建议定义角色是一种好习惯 使用此属性设置。如果没有为页面定义字符集, 几种跨脚本技术可能会变得切实可行 页面用户,就像UTF-7后备跨脚本技术一样。总是 设置此元将防止这些风险。
尽管可能在极少数情况下无法指定内容类型,但一般意见似乎是指定内容类型是一种好习惯。如果你这样做,那么就不需要使用特殊字符的HTML表示(在我看来,这使你的代码更难阅读)。