SwiftでUnicodeエスケープシーケンスエンコードとデコードをしたくなったため、実装をメモとして残す。
開発環境
- Mac OS Big Sur 11.3
- Xcode ver 12.5
- Swift ver 5.4
概要
SwiftでUnicodeエスケープシーケンスエンコードとデコードの実装を記載する。
ソースコード
Unicodeエスケープシーケンスエンコード
例)あ → \u3042
func unicodeEncode(beforeText: String) -> String {
var unicodeEncodedText = ""
_ = beforeText.decomposedStringWithCanonicalMapping.unicodeScalars.map { scalar in
unicodeEncodedText += String(format: "\\u%04x", scalar.value)
}
return unicodeEncodedText
}
Unicodeエスケープシーケンスデコード
例)\u3042 → あ
func unicodeDecode(beforeText: String) -> String {
let wI = NSMutableString( string: beforeText )
CFStringTransform( wI, nil, "Any-Hex/Java" as NSString, true )
return wI as String
}