【发布时间】:2015-06-10 17:06:19
【问题描述】:
Javascript 的 String 原型方法 toUpperCase() 是否会在每种支持 UTF-8 的语言/字符集中提供自然预期的结果?
我尝试过简体中文、韩文、泰米尔文、日文和西里尔文,目前看来结果还算合理。我可以依赖这种语言安全的方法吗?
例子:
"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス".toUpperCase()
> "イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス"
编辑:正如@Quentin 指出的那样,还有一个String.prototype.toLocaleUpperCase() 使用起来可能更“安全”,但我还必须支持 IE 8 及更高版本,以及基于 Webkit 的浏览器。由于它是 ECMAScript 3 标准的一部分,它应该可以在所有这些浏览器上使用,对吧?
有谁知道使用它会自然产生意想不到的结果的任何情况?
【问题讨论】:
-
“否”在这里是一个安全的选择。有 很多 种语言使用 UTF-8 字符,其中许多甚至没有大写或小写字符的概念。
-
顺便说一句:请礼貌地告知您的 Windows XP 用户,如果没有安全更新,他们 (98% 可能) 成为全球僵尸网络的一部分,这使得网络工程师的工作变得更加困难。
-
@Katana314 不相关的旁白。你为什么要加班?
-
@connexo 好吧,因为您提到您支持 IE8 及更高版本。带有安全更新的 Windows 7 将在 IE11 上运行,因此支持 IE8 的最常见原因是 Windows XP。我通常不会指出诸如“你的图像应该有一个
alt!”之类的小问题。但是对于相当大的问题,人们通常至少提供简短的评论以确保他们知道;或者也许将其作为注释包含在他们的答案中。
标签: javascript string