5

我正在制作一个以多种语言显示礼貌文本的静态 HTML 页面。我注意到,如果我粘贴ウェブサイトのメンテナンスの下で到 Expression Blend 中,该文本在代码中的显示相同。我认为这对兼容性不好,应该用适当的 HTML 实体代替。

我试过http://www.opinionatedgeek.com/DotNet/Tools/HTMLEncode/encode.aspx但它返回给我相同的日语文本。

  1. 从浏览器兼容性的角度来看,将日语直接粘贴到 HTML 页面的源代码中是否正确?
  2. 否则,该文本的正确 HTML 编码是什么?或者,更好的是,是否有任何工具可用于将非 ASCII 字符转换为 HTML 实体,可能是在线的并且可能是免费的?
4

3 回答 3

2

我认为这对兼容性不好,应该用适当的 HTML 实体代替。

实际上恰恰相反,您的偏好应该是不使用 html 实体,而是正确地将文档编码声明为 UTF-8 并使用实际字符。这样做有很多令人信服的理由,但真正的问题是为什么使用它,因为它是一个受到广泛支持的标准?

其中一些观点之前已经总结过

UTF-8 编码对于那些了解字符含义并知道如何键入的人来说更容易阅读和编辑。

UTF-8 编码对于那些不理解它们的人来说就像 HTML 实体编码一样难以理解,但它们具有呈现为特殊字符而不是难以理解的十进制或十六进制编码的优势。

[例如] Wikipedia...为了用户友好和可搜索性,实际上是通过文章并将字符实体转换为相应的真实字符。

于 2012-09-29T03:12:01.920 回答
1

只要您在 http 标头或元标记中将网页标记为 UTF-8,在您的网页中包含外来字符应该不是问题。或者,您可以使用 JavaScript 中的 encodeURI/decodeURI 函数对这些字符串进行编码/解码

encodeURI('ウェブサイトのメンテナンスの下で')
//returns"%E3%82%A6%E3%82%A7%E3%83%96%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E3%83%A1%E3%83%B3%E3%83%86%E3%83%8A%E3%83%B3%E3%82%B9%E3%81%AE%E4%B8%8B%E3%81%A7"

decodeURI("%E3%82%A6%E3%82%A7%E3%83%96%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E3%83%A1%E3%83%B3%E3%83%86%E3%83%8A%E3%83%B3%E3%82%B9%E3%81%AE%E4%B8%8B%E3%81%A7")
//returns ウェブサイトのメンテナンスの下で

如果您正在寻找将一堆静态字符串转换为 unicode 字符的工具,您可以简单地使用网页开发人员控制台(mozilla/firefox 的 firebug)中的 encodeURI/decodeURI 函数。希望这可以帮助!

于 2012-09-29T01:35:21.090 回答
0

HTML 实体仅在您需要表示无法在保存文档的编码中表示的字符时才有用。例如,ASCII 没有关于如何表示“€”的规范。如果您想在 ASCII 编码的 HTML 文档中使用该字符,则必须将其编码为€或根本不使用它。

如果您对文档使用可以表示您需要的所有字符的字符编码,例如 UTF-8,则不需要 HTML 实体。您只需要确保浏览器知道文档的编码方式,以便正确解释它。这确实是更可取的方法,因为它只是保持源代码的可读性。如果您可以简单地使用实际字符,那么想要使用 HTML 实体确实没有意义。

有关更多信息,请参阅http://kunststube.net/frontback 。

于 2012-09-29T01:46:47.423 回答