下記の続きです。
iPhone, Mac, ISO-2022-J
P, 〜, 全角チルダとか波ダッシュについてのメモ
http://blog.s21g.com /articles/ 1693
あと、この記事も関係するかも:[iPhone] メール送信アプリでのツボ
結局何が書きたかったかというと、
「全角チルダ」がdataUsingE
ncoding:NS ISO2022JPS tringEncod ingで「?」に置き換えられるので、何らかの回避策を探そう!…探しました!
という報告です。
〜の入力方法二つ
以前に書いた記事で、Macでは全角チルダと波ダッシュは同じに見えるらしいことがわかりましたが、iPhoneでも同様のようです。 で、日本語キーボードで「〜」を入力する方法は二通りあります:
あいうキーボードで、わの所を右にフリック、次候補中にある〜を選択
→ 全角チルダ数字キーボードで、0の所を左にフリック
→ 波ダッシュ
dataUsingE ncoding:NS ISO2022JPS tringEncod ingで波ダッシュだと?にされない、〜のまま
全角チルダ(〜) → ?
波ダッシュ(〜) → 〜
という風に置換されることがわかりました。
大方のユーザにとっては全角チルダを波ダッシュに変換しても問題がなさそうなので、アプリ内では下記のように変換することにしました。
1 unichar wave_dash_char = 0x301C; 2 unichar fullwidth_ tilde_char = 0xFF5E; 3 NSString *wave_dash = [NSString stringWith Format:@"%C", wave_dash_ char]; 4 NSString *fullwidth_ tilde = [NSString stringWith Format:@"%C", fullwidth_ tilde_char ]; 5 6 NSString *replacedSt r = [str stringByRe placingOcc urrencesOf String:fullwidth_ tilde withString :wave_dash];
またポンドとセントでも同じような状況が発生するので、同様の処理を行うようにしました。
1 unichar pond_char = 0x00A3; 2 unichar cent_char = 0x00A2; 3 unichar pond_char2= 0xFFE1; //?になるポンド 4 unichar cent_char2 = 0xFFE0; //?になるセント
posted by
satoko
on Wed 10 Feb 2010
at 07:18