phpでcopyを失敗したときに、例外をスローして

$e->getMessage()をするのですが、
この文字が文字化けしています。
mb_convert_encodingでeuc-jpからutf-8にコンバートすると
正しく表示されるのですが、なんでeuc-jpなんでしょうか。
それと、これはcopyに限ったことでしょうか。
db接続でpdoとかのときは...また別になりますかね。これまで発生したことないですし。
それとも、毎回、mb_convert_encoding($e->getMessage(), 'utf-8', 'euc-jp'))
する必要があるのでしょうか。
どうぞよろしくお願いします!!

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/03/06 22:07:01
  • 終了:2014/03/13 22:10:05

回答(1件)

id:tigerjp No.1

たいがあ回答回数19ベストアンサー獲得回数62014/03/07 15:06:58

ポイント100pt

内部文字エンコーディングがEUC-JPになっているのではないでしょうか。

echo mb_internal_encoding();



結果がEUC-JPならば

mb_internal_encoding("UTF-8");

で、エンコーディングをUTF-8にしておくと改善されるかと思います。

id:yayayai

ありがとうございます!
なるほど。
echo mb_internal_encoding()してみると、
「ISO-8859-1」でした。

mb_internal_encoding("UTF-8");とセットしてから
copyをしても文字化けしてしまう。
internal_encodingは無関係なのでしょうかね。。

2014/03/08 09:55:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません