都是ß惹的祸

阅读: 评论:0

都是ß惹的祸

都是ß惹的祸

收到一个客户报来的bug,说自己在创建某个component时,一旦命名中包含了ß(例如UEMENß),该创建功能会导致失败,删除掉ß后该功能正常运行。不少资深的测试和开发留言说—— ß是一个非常tricky的字符,很多第三方库对其支持都不好,其他产品也有类似问题吗,在release notes务必加上一句告知用户。

 

ß当真如此神秘?怎么就引得无数英雄尽折腰呢?为何那么多第三方库对其支持都不好呢?一起看看这段代码片段吧。

Stringb = "ß";
Localeloc = Locale.forLanguageTag("en-US");
System.out.LowerCase(loc));
System.out.UpperCase(loc));

打印结果如下:

ß
SS 

发现了什么吗?不会是眼花了吧,更换locale为tr-TR再试,结果没有任何变化。原来根源在这里,而本例中,同样因为调用了toUpperCase()导致ß变成了SS,而随后的检验过程自然找不到期望的ß,操作失败也随着而来。

int lastCommaIndex &#UpperCase().indexOf(UpperCase()) -1;

戏法这东西,看上去高大上,而一旦捅破了感觉也就不过如此,再蹊跷的Bug也同理可证。背后的玄机已然曝光,以后做国际化开发时需要调用toUpperCase,大家还得小心为妙哦。

本文发布于:2024-02-04 22:54:24,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170718234460474.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:都是
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23