CombiningとComposition
2010. 04. 02
Unicodeの正規化について調べていましたら、『ものかの』というサイトに辿り着きまして、そちらの『Unicode正規化 その1』というページに、
Combiningを「合成」にしている文書は書いている本人が混乱しているので本当は読まない方がいい
との記述がありまして・・・はい、混乱してました。
つまり、『Combining = 結合』と『Composition = 合成』の違いを深く考えず、一緒くたに『合成』と訳していたというわけです。
・・・慣れない和訳なんてするものじゃないですね。
例えば『ゆきぽ』の『ぽ』場合、表示上は同じ1文字でも実際の中身は
ぽ(U+307D):1文字
ほ゜(U+307B と U+309A):2文字(※ 表現上、U+309Aの部分をU+309Cで代用しています)
となっていることがあり、プログラムの処理上明確に取り扱い方が変わる(使うメソッドが異なったり、結果が変わったりする)ので、一緒に扱ってはダメなわけです。
1文字は『合成』、2文字は『結合』と記述する必要があるのです。
以下、『結合』を『合成』と誤記していた修正したメソッドの一覧です。
(メソッドごとにリンク埋め込まないとダメかな・・・)
●NSString(3)
文字と部分文字列の検索
・– rangeOfCharacterFromSet:options:range:
●NSString(4)
合成済文字範囲の判別
・– rangeOfComposedCharacterSequenceAtIndex:
・– rangeOfComposedCharacterSequencesForRange:
参考文献
・ものかの/archive/Unicode正規化 その1
Combiningを「合成」にしている文書は書いている本人が混乱しているので本当は読まない方がいい
との記述がありまして・・・はい、混乱してました。
つまり、『Combining = 結合』と『Composition = 合成』の違いを深く考えず、一緒くたに『合成』と訳していたというわけです。
・・・慣れない和訳なんてするものじゃないですね。
例えば『ゆきぽ』の『ぽ』場合、表示上は同じ1文字でも実際の中身は
ぽ(U+307D):1文字
ほ゜(U+307B と U+309A):2文字(※ 表現上、U+309Aの部分をU+309Cで代用しています)
となっていることがあり、プログラムの処理上明確に取り扱い方が変わる(使うメソッドが異なったり、結果が変わったりする)ので、一緒に扱ってはダメなわけです。
1文字は『合成』、2文字は『結合』と記述する必要があるのです。
以下、『結合』を『合成』と誤記していた修正したメソッドの一覧です。
(メソッドごとにリンク埋め込まないとダメかな・・・)
●NSString(3)
文字と部分文字列の検索
・– rangeOfCharacterFromSet:options:range:
●NSString(4)
合成済文字範囲の判別
・– rangeOfComposedCharacterSequenceAtIndex:
・– rangeOfComposedCharacterSequencesForRange:
参考文献
・ものかの/archive/Unicode正規化 その1