「ひらがなをローマ字に変換したい…」「日本語の文字をラテン文字にしたい…」
そんなときに活躍するのが、CFStringTransform という強力な変換機能です。
この記事ではCFStringTransformの使い方・できること・具体例を丁寧に解説していきます!
CFStringTransformって何?
CFStringTransform
は、Appleが提供している文字列の変換用の関数です。
iOSやmacOSで使えるCoreFoundationの一部でひらがな→ローマ字、カタカナ→ひらがな、全角→半角など、さまざまな文字変換ができます。
主に次のようなときに便利です:
- ひらがなやカタカナをローマ字にしたいとき(例:"たろう" → "tarou")
- 全角文字を半角に変換したいとき
- 日本語の名前や住所をローマ字で出力したいとき
- 翻字(transliteration)や正規化を行いたいとき
Swiftでは NSString
(または NSMutableString
)を使って文字列を変換します。
具体例①:ひらがなをローマ字に変換する(Latin化)
ひらがなで書かれた名前を、ローマ字表記に変換したいときの例です。
1 2 3 4 5 6 |
var name = "たろう" as NSString CFStringTransform(&name, nil, kCFStringTransformLatin, false) print(name) // → "tarou" |
ここでやっていること:
var name = "たろう"
:変換対象の文字列をNSString
型として用意CFStringTransform(...)
:Latin(ラテン文字)への変換を実行- 結果として
"tarou"
が得られます
これは、ユーザー入力や検索時に「読み」をローマ字で扱いたい場面などに使えます。
具体例②:ひらがな→ローマ字+アクセント記号つき(有声変換)
ローマ字に変換するときにアクセント記号(ダイアクリティカルマーク)も含めたい場合は第4引数を true
にします。
1 2 3 4 5 6 |
var name = "しんじゅく" as NSString CFStringTransform(&name, nil, kCFStringTransformLatin, true) print(name) // → "shinjuku"(macOSでは "shin'juku" のように変わることも) |
アクセント表現のON/OFFを切り替えられるのも便利なポイントです。
具体例③:カタカナをひらがなに変換する
すでにカタカナで入力された単語を、ひらがなで統一したいときの例です。
1 2 3 4 5 6 |
var word = "カタカナ" as NSString CFStringTransform(&word, nil, kCFStringTransformHiraganaKatakana, true) print(word) // → "かたかな" |
これは検索の正規化や、ユーザーの読みやすさ向上に役立ちます。
具体例④:全角英数字を半角に変換する
日本語入力でありがちな「全角文字」を見た目が揃うように「半角」に変換したい場合です。
1 2 3 4 5 6 |
var input = "ABC123" as NSString CFStringTransform(&input, nil, kCFStringTransformFullwidthHalfwidth, false) print(input) // → "ABC123" |
フォーム入力やデータベース登録時などに非常に便利です。
まとめ
CFStringTransform
は文字列を別の形式に変換できる便利な関数- 主にひらがな⇄ローマ字、カタカナ⇄ひらがな、全角⇄半角などに使える
- NSString型の変数を使い、変換結果を直接書き換える
- ローマ字表記や文字正規化、入力サポートにとても便利
Swiftで文字を柔軟に扱いたいならこの CFStringTransform
を覚えておくととても便利です。
文字の見た目や検索精度を上げたいときに、ぜひ活用してみてください!