根深蒂固的ASCII/ISO 8859-1
2017-03-05 17:51
260 查看
原文
现在 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。
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。
相关文章推荐
- ascii,ISO-8859-1,unicode, utf8,gb2312,big5,gbk,gb18030等几种常区别
- 彻底搞清楚字符编码: ASCII, ISO_8859, GB2312,UCS, Unicode, UTF8.(GBK, GB18030, BIG5, UTF-7,UTF-16,UTF-32) .
- 从ASCII、ISO-8859、GB2312、GBK到Unicode的UCS-2、UCS-4、UTF-8、UTF-16、UTF-32
- 各种编码是什么东西?(iso-8859-1 、gbk、gb2312、UniCode、ASCII、URL、URI)
- [置顶] HTML H5 ISO-8859-1 ASCII实体转义字符集
- HTML 中ASCII (ISO-8859-1)有用的字符实体
- ASCII、GBK、unicode、utf-8、iso-8859-1等编码的发展史和相互关系
- 彻底搞清楚字符编码: ASCII, ISO_8859, GB2312,UCS, Unicode, UTF8.(GBK, GB18030, BIG5, UTF-7,UTF-16,UTF-32)
- 各种编码方式详解,ASCII、ISO-8859-1、GB2312、GBK、UTF-16、UTF-8等
- 彻底搞清楚字符编码: ASCII, ISO_8859, GB2312,UCS, Unicode, Utf-8
- 字符编码详解(ASCII ,utf-8,unicode,gbk,gb2312,iso 8859-1等)
- 彻底搞清楚字符编码: ASCII, ISO_8859, GB2312,UCS, Unicode, UTF8.(GBK, GB18030, BIG5, UTF-7,UTF-16,UTF-32)
- 字符集与编码八之ASCII和ISO-8859-1
- 汉字字符编码与转码详解,iso-8859-1的妙用
- myeclipse 遇到'ISO-8859-1'编码问题
- 第二篇:JAVA字符编码系列二:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换
- MyEclipse中:Some characters cannot be mapped using 'ISO-8859-1' character encoding
- MyEclipse问题:some characters can not mapped using "iso-8859-1" character encoding 解决方法
- java怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
- java中byte, iso-8859-1, UTF-8,乱码的根源