Joh*_*een 5 unicode macos objective-c ios
我有一个非常简单的任务:从服务器我得到UTF-8字符串作为字节数组,我需要以大写形式显示此字符串中的所有符号.从这个字符串你可以得到任何unicode表的符号.
我知道如何在一行代码中完成它:
NSString* upperStr = [[NSString stringWithCString:utf8str encoding:NSUTF8StringEncoding] uppercaseString];
Run Code Online (Sandbox Code Playgroud)
在我看来它适用于我检查过的所有符号.但我不明白:为什么我们需要方法uppercaseStringWithLocale?当我们使用unicode时,每个符号在unicode表中都有独特的位置,我们可以很容易地找到它有大/小写的表示.什么麻烦我可能会,如果我使用uppercaseString代替uppercaseStringWithLocale?
文档说:
以下方法基于指定的语言环境执行本地化的案例映射.传递nil表示规范映射.对于用户首选项区域设置,请指定+ [NSLocale currentLocale].
假设在某些语言环境中,即使在字符集中,从小写到大写的映射也会发生变化.我不是全球各种语言的专家,但是编写这些方法的人都是,所以我用它们.