さきほど、テストしていたら写真付きの日記が投稿できなくなっているバグを発見しましたので、急遽修正した物をアップしました。
ダウンロード
あと、〜等の記号についてですが「!?」等は、ちゃんとコードまでは調べてはいないのですが、mixiが使う文字コードのEUCには含まれていない外字になると思います。
iPhoneOSは標準でUnicodeを使っているのでmixiに送信する時にUnicode -> EUCへの文字コード変換を行っています。この部分はiPhone OSの機能を利用しているのですが、正規のコード以外の物は「?」に置き換わってしまいます。そもそも日本語の文字コードが乱立していて、そこに携帯電話が入って来て絵文字や半角カナを平気で使うようになり、混沌としてしまっています。
iPhoneOSが?に置き換えるのも、インターネットのルールに従った結果だと思いますので、この部分に関しては手を加えないようにしようと思います。
ちなみに、mixiからデータを受信した時に、本来EUCで規定されていない外字が入っている場合、iPhoneOSはその部分だけを?にするのではなく、全く変換してくれません(空の文字列になる)。初期のmixi-ROMではその場合はあきらめていたのですが、使い物にならないので、変換できない場合は一文字ずつチェックして、コードを変換するようにしています。
本日、ちゃんと調べてみたところ、〜に関しては見た目は同じなのですが、違う文字コードの物が存在していました。そして、その片方がEUCには存在しない文字のため?に置き換えられていました。
返信削除入力方法により、どちらが選ばれるかが変わるみたいですね。見た目では分からないのでなんとも紛らわしいです。
その他の「!?(ここでは2文字で入力しています)」等に関しても、EUCにはないコードでした。
そこで、よく使われるであろう以下の記号に関しては、プログラムで置き換えるようにしてみました。
〜, ??, !?, !!, ?!
〜に関しては、EUCに含まれるコードへ変換し、それ以外は半角の文字2つに置き換えます。
さらに、それでも変換できない文字が有った場合は、入力確定時に「使用できない文字/記号を?に置き換えました。」とメッセージを表示するようにしました。