XojoでUnicode正規化をするメソッドです。
XojoにはNSStringクラスがないのですけど、CFStringRefで代用できるんですね。
String型からとくに変換する必要もないので、かなり便利。
Function toNFC (s as String) As String
// NFCの場合
If s.LenB=0 then Return ""
Declare function precomposedStringWithCanonicalMapping lib "Cocoa" selector "precomposedStringWithCanonicalMapping" (targetStr as CFStringRef) as CFStringRef
Return precomposedStringWithCanonicalMapping(s)
End Function
4種類の正規化形式は以下の通り。
- NFC -> precomposedStringWithCanonicalMapping
- NFD -> decomposedStringWithCanonicalMapping
- NFKC -> precomposedStringWithCompatibilityMapping
- NFKD -> decomposedStringWithCompatibilityMapping