4
3

More than 5 years have passed since last update.

iOSに於けるユーザコメントについて

Last updated at Posted at 2013-12-14

==========================

文字コード

Exifのユーザコメントは先頭8バイトに文字コードが埋め込んである仕様です。
文字コードはASCII文字列で、16進数でそれぞれ次のようになっています。

  • ASCII ・・・ (41 53 54 49 00 00 00) “ASCII ”
  • Shift-JIS・・・ (4A 49 53 00 00 00 00 00) “JIS “
  • Unicode・・・(55 4E 49 43 4f 44 45 00) “UNICODE “
  • 未定義・・・(00 00 00 00 00 00 00 00)

  iOSでは次のようにExifのユーザコメントが埋め込めます。

NSMutableDictionary *exif = metadata[(NSString *)kCGImagePropertyExifDictionary];
exif[(NSString *)kCGImagePropertyExifUserComment] = userComment;

ただし、文字コードを自動判別するようです。

日本語のみ、または英字のみの場合は何も問題がありませんが、混合するとお問題が生じます。試してみると次のようになります。

  • OKの場合
  1. あいうえお —> あいうえお
  2. あabcdeいうえお —> あabcdeいうえお
  3. 1abcdeいうえお —> 1abcdeいうえお (先頭全角1)
  4. Zabcdeいうえお —> 1abcdeいうえお (先頭全角Z)

-NGの場合

  1. abcdeあいうえお —> abcde?????
  2. @abcdeいうえお —> @abcde???? (先頭全角@)
  3. #abcdeいうえお —> #abcde???? (先頭全角#)

データ文字数

シミュレータで実行するとこれでほぼOKなはずですが、実機で実行するとさらに問題が生じます。

iPhone4 (iOS7)では、次のようになります。

  1. 123456789012345678901234567890 —> 123456789012345678901234567890
  2. あいうえおかきくけこ —> あいうえ
  3. あいうえおかきくけこ□□□□□□ —> あいうえおかき
  4. あいうえおかきくけこさしすせそたちつてと —> あいうえおかきくけ

初代iPad mini (iOS6)では、次のようになります。

先頭に日本語を入れればうまくいくようです。

  1. あいうえお —> あいうえお
  2. あabcdeいうえお —> あabcdeいうえお

OS依存なのか、機種依存なのかは、今後検証する必要があります。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3