下記の続きです。

iPhone, Mac, ISO-2022-JP, 〜, 全角チルダとか波ダッシュについてのメモ
http://blog.s21g.com/articles/1693

あと、この記事も関係するかも:[iPhone] メール送信アプリでのツボ

結局何が書きたかったかというと、

「全角チルダ」がdataUsingEncoding:NSISO2022JPStringEncodingで「?」に置き換えられるので、何らかの回避策を探そう!…探しました!

という報告です。

〜の入力方法二つ

以前に書いた記事で、Macでは全角チルダと波ダッシュは同じに見えるらしいことがわかりましたが、iPhoneでも同様のようです。 で、日本語キーボードで「〜」を入力する方法は二通りあります:

  1. あいうキーボードで、わの所を右にフリック、次候補中にある〜を選択
    → 全角チルダ

  2. 数字キーボードで、0の所を左にフリック
    → 波ダッシュ

dataUsingEncoding:NSISO2022JPStringEncodingで波ダッシュだと?にされない、〜のまま

全角チルダ(〜) → ?
波ダッシュ(〜) → 〜

という風に置換されることがわかりました。

大方のユーザにとっては全角チルダを波ダッシュに変換しても問題がなさそうなので、アプリ内では下記のように変換することにしました。

   1  	unichar wave_dash_char = 0x301C;
   2  	unichar fullwidth_tilde_char = 0xFF5E;	
   3  	NSString *wave_dash = [NSString stringWithFormat:@"%C", wave_dash_char];
   4  	NSString *fullwidth_tilde = [NSString stringWithFormat:@"%C", fullwidth_tilde_char];
   5  
   6  	NSString *replacedStr = [str stringByReplacingOccurrencesOfString: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 Png satoko on Wed 10 Feb 2010 at 07:18
Contents
[iPhone] ISO-2202-JP文字列作成での全角チルダなどの扱いについて
Comments
瀧内元気: MacOS版は以下にあります * [genki/ViMouse](https://githu... '23-1
KingofSmack: Here also good reads for this mobile applicatio... '14-5
Spencer: You don't have to re-compile it, this version w... '14-4
staiano: Any chance we can get a recompile for 10.9? '14-1
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ