您的位置:首页 > Web前端 > HTML

根深蒂固的ASCII/ISO 8859-1

2017-03-05 17:51 260 查看
原文

ISO-8859-1

UTF-8在1993 年首次被提出。24 年时间,足够时间使它变得无处不在,特别是考虑到互联网是全球。ASCII 甚至不包括法文,更不用提西里尔文或梵文 (印地语)。这就是为什么 ASCII 被取而代之的 ISO-8859-1,哪种涵盖了大多数的西方语言的拼字法。

现在 88.3%网站使用 UTF-8 。这还不够,但是让我们假设这些 11.7%不接受任何输入,只是英语语言的静态网站。仍待收养的 UTF-8 的问题是如何根深蒂固的 ASCII/ISO 8859-1 是。我要举几个例子︰

UTF-8 不是默认的编码在许多核心 Java 类。FileReader,例如。这是类似的其他语言和运行时环境。这些 Java 类的默认编码是 JVM 默认情况下,是最常见的 ISO-8859-1。它据称来自 OS,但是我不记得配置任何编码在我的操作系统上。只是区域设置,这是本质上的不同。

许多框架、 工具和容器不默认使用 UTF-8 (和不设法补救 JVM 在默认情况下不使用 UTF-8)。Tomcat 的默认 URL 编码我认为是仍 ISO 8859-1。Eclipse 不使文件 UTF-8,默认情况下 (在我的机器上它是事情甚至 windows 1251 (西里尔文),这是很可怕的)。等等。我已经要求有 UTF-8 作为默认在过去,和我重复我的电话

正则表达式示例和教程总是给你[a-zA-Z0-9]+正则表达式来”验证字母数字的输入”。它是内置在许多验证框架。这是完全错误的。这是一个正则表达式,必须永远不会出现在您的代码的任何地方,除非你有一个很好的解释。然而,该示例是无处不在。相反,正确的正则表达式是[\p{Alpha}0-9]+。使用错误的正则表达式意味着你不能接受任何特殊的字符。这是你几乎从来没有想要的东西。除非,也许,因为接下来的问题。

浏览器有问题用 UTF-8 的 Url。为什么呢?这很复杂。它几乎工作时它不是一部分的域的名称。几乎,因为当你复制的 URL,它获取拧 (请原谅我 — — 编码)。

UTF-8 以 CSV,Microsoft Excel 不正常工作。摸不头脑,认识到 UTF-8 分力成为垃圾了当然,如果你有一个 BOM (字节顺序标记),但来吧,它是 [年度]。

作为乔恩双向飞碟正确指出的那样— — 我们有问题的最基本的数据类型 — — 字符串、 数字和日期。这是因为真实的世界是复杂的。部分是因为我们的软件工程师倾向于过分简化它。这是我们的所作所为与 ASCII 和其他只有拉丁美洲的编码。但让我们忘记 ASCII 和 ISO-8859-1。它不是甚至可以称之为”遗留”经过 24 年的 UTF-8。24 年后他们应该已经死了。

让我们不给不要使用 UTF-8,不假设任何默认不同比 UTF-8 是个好主意,和让我们排序 URL 混乱的正则表达式示例。

也许我听教条。也许夸大了因为我本机的脚本是非拉丁语。但如果我们想要我们的软件是全球 (和我们想的为了有更大的市场),然后我们要排序我们基本的编码问题。UTF-8 作为一种标准是不够的。让我们忘记 ISO-8859-1。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐