iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど
NSStringもJavaのStringも内部では文字列をUTF-16で扱っていて、その振る舞いもUTF-16に引きづられたものになっているという発表をCocoa勉強会で聞いたことがある。
Swift 5 では、内部でUTF-8で文字列を扱うことになったようだ。
資料によると、UTF-16だから1文字2バイトとならないし、ASCIIがよく使われることを考えると、効率の面で、以前のSwiftのStringではASCIIとUTF-16で扱っていたのが、UTF-8に一本化できるなどの変更の理由があるようだ。