人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPで取得したEXIFのユーザコメントが文字化けしてしまいます。

exif_read_dataで
EXIF,UserCommentを読み込んでいますが、
文字化けしてしまいます。
mb_convert_encodingで色々試しましたが解決できません。

できればライブラリ等を使わずにできる方法を
よろしくお願いします。

●質問者: lemon
●カテゴリ:ウェブ制作
✍キーワード:Exif PHP コメント ユーザ ライブラリ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● pahoo
●20ポイント

おそらく文字化けだと思うので、以下の情報をお願いします。

1.UserCommentに代入したテキスト本文

2.UserCommentのバイナリデータ

echo bin2hex(UserCommentの値)

のようにすれば、16進数で表示されます。

◎質問者からの返答

1.テスト

2.554e49434f444500c630b930c830

です。


2 ● pahoo
●20ポイント

うーん、文字コードではないですね。

  1. EXIFを埋め込んだアプリケーションは何でしょう。それは日本語に対応していますか?
  2. UserCommentに、正常に「テスト」と登録されていますか。他のExifツールを使って正常に「テスト」と表示することはできますか?
◎質問者からの返答

1.Windowsのプロパティでコメントを入れました。

2.PhotoshopでもEXIF情報に「テスト」と表示されました。

Exif専用ツールじゃないとダメなのでしょうか。

ちなみにUserCommentの最初の8バイトは文字コードを表しているようで、

UNICODEと表示されます。mb_detect_encodingで調べるとASCIIとなります。


3 ● pahoo
●100ポイント ベストアンサー

ごめんなさい。勘違いしていました。

#2の回答は無視してください。


16bit unicode little endian でエンコードされています。

これをShift_JIS で表示するためには下記のようにします。

$UserCommentに UserComment.exif の値が入っているものとします。

$bin = substr($UserComment, 8);
$str = mb_convert_encoding($bin, 'SJIS', 'UCS-2LE');
echo $str;
◎質問者からの返答

表示されました!

有難うございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ