• 締切済み

IMAP関数で取得した文字列の、文字コード変更について

IMAP関数で取得した文字列(MAILBODYやSUBJECTなど)の文字コードは変えられないのでしょうか? もともとの文字コードはASCIIであることは確認しているのですが、 $str=mb_convert_encoding($str,"UTF-8"); を行っても、ASCIIのまま変更することができません。 なにかコツのようなものをご存知でしたらお教え願えればと思います よろしくお願いします。

みんなの回答

回答No.2

ASCIIをmb_convert_encodingしても、detect_encodingした結果はASCIIになるんじゃないかと思います。 IMAP関数を使ったことが無いのですが、以下のページは参考にならないでしょうか? http://jp.php.net/manual/ja/function.imap-headerinfo.php http://jp.php.net/manual/ja/function.imap-body.php 実際に書かれているソースを公開した方が問題点が解るんじゃないかと思います。

puzzleman
質問者

お礼

お返事が遅くなりました。ご回答ありがとうございます。 ソースは以下です。 $_mail=imap_open ("$surver","$id","$pass"); $mailbody=imap_body($_mail,1); $mailbody=mb_convert_encoding($mailbody,"UTF-8"); print(mb_detect_encoding($mailbody); imap_close($_mail); です。ブラウザで確認したところ、エンコードはSJISになっておりました。しかしエンコード前・後共に、mb_detect_encodingで確認してもASCIIのままになってしまいます。

  • calltella
  • ベストアンサー率49% (317/635)
回答No.1

ASCIIだとわかっているのでしたら明示すべきです。 $str = mb_convert_encoding($str, "UTF-8", "ASCII");

puzzleman
質問者

お礼

ご回答ありがとうございます。 ご質問の前に、すでに明示して試しておりましたが、結果は変わりませんでした。

関連するQ&A