墙角下的toLowerCase()
来源:互联网 发布:软件分析报告 编辑:程序博客网 时间:2024/05/01 09:16
Turkey对国际化开发和测试人员应该都不算陌生,在G11n的世界中,他一直都属于那种需要被“重点照顾”的同学。但究竟怎么个特殊法呢?我先来讲述一个亲身经历的往事。
故事就发生在不久前,首先测试人员安装AUT在TR win server上,紧接着在browser中键入需要访问的URL,点击Access试图访问AUT。然而奇迹就在此刻不期而遇了……测试人员在等待了很长时间后,页面上除了一个不停loading的转盘外,什么都没有发生,整个登陆过程被hang住!而该情况在其他OS上并不复现。
问题何在?TR缘何要被重点照顾?头号嫌犯的影像其实已在脑中浮现了出来,于是默默地在IDE中搜索toLowerCase& toUpperCase……
果不其然,惯犯已落网,示例代码如下。
public enum OS { WIN32, WIN64,WINMOBILE, LINUX64, LINUX32, ANDROID, IOS, CHROMEOS, MAC, UNKNOWN; public StringtoString() { returnname().toLowerCase(); }}
到这里,我们已经看出该问题的根源就在于在toLowerCase函数在TR locale下对字符“i”的处理异于其他。而好巧不巧的是,几个主流操作系统又都不约而同的包含了字母i,Windows,Linux,IOS,Android。于是乎,问题不可避免的发生了。
究竟TR对于i的处理有何诡异?看看下面这段代码的输入你应该就了然啦。
String uos = "WIN64";String los = "linux64";Locale loc = Locale.forLanguageTag("tr-TR"); System.out.println(uos.toLowerCase(loc));System.out.println(uos.toLowerCase(Locale.ROOT));System.out.println(los.toUpperCase(loc));System.out.println(los.toUpperCase(Locale.ROOT));
wın64win64LİNUX64LINUX64
最终在toLowerCase中明示Locale,修改代码为return name().toLowerCase(Locale.ROOT); 问题解决。回顾问题本身,其实是一处很小的代码修改,但却险些造成了release delay,看来要实现一个国际化的软件产品,尤其需要注意这些犄角旮旯中的暗器哦,正如墙角下的toLowerCase。
1 0
- 墙角下的toLowerCase()
- toLowerCase()的用法
- IBM挖Sun的墙角
- toLowerCase和toLocaleLowerCase()的区别
- toLowerCase和toLocaleLowerCase的区别
- Java toLowerCase()/toUpperCase()方法的使用注意
- Java toLowerCase()/toUpperCase()方法的使用注意
- js中toLowerCase()方法的作用
- js中toLowerCase()方法的作用
- 墙角转弯
- js对文字的修饰 big() small() fixed() toUpperCase() toLowerCase()
- 使用navigator.userAgent.toLowerCase()判断浏览器的类型
- java.lang.String 下面的toUpperCase()和toLowerCase()方法
- toLowerCase方法
- 一个家伙站在街边的墙角一根接着一个的抽着雪茄。
- YII框架 验证码使用 转载自墙角花开的博客
- 这个夏天:应用试客已将积分墙逼到墙角,ASO路上的那些掮客
- 浅夏,绿色延伸,就连邻家墙角的蔷薇也羞红了脸
- elasticsearch的实现全文检索
- 推荐三十款最好的免费项目管理软件
- laravel框架sql中groupBy之后排序的问题
- 20.使用javaAPI操作MongoDB
- html 中include另外一个页面
- 墙角下的toLowerCase()
- httpClient 4.5 线程池 同时支持https和http
- android去掉title栏的方法总结
- shell中的特殊变量
- Android进阶系列之源码SDK单例模式运用
- KAGGLE比赛中集成方法使用教程(KAGGLE ENSEMBLING GUIDE)
- Java Web利用POI导出Excel简单例子
- horsemap 实现两个地图叠加
- 双链表