[PHP]Eclipse上でPHPの出力が文字化けするのを直す

やりたいこと

Eclipseを使ってPHP開発をしているとき、
print(‘$str_rowName); と自分で出力を指定しているときは日本語が出てくるが、
PDOをつなごうとしてエラーになった(try構文)になったときの
$e->getMessage()は文字化けになってしまう(下コード)
これを直したい

エラー内容

・エラーになったときの表示が文字化け(下記はコピペできなかったのでイメージ)

これだとどこがエラーになったのかわからないので直す。

調査

・「Eclipse 出力 文字化けを直す」でリサーチ
→ 出力より、Eclipse内の日本語が文字化けする現象を直す方法というのがズラリ
→ Eclipseの初期設定の文字コードはMS932なので、UTF-8に直したほうがいい
→ もともとUTF-8にしたかったのでEclipseの設定を変えてやってみるも出力は変化なし

・下の1)でリサーチしたもの
EclipseがUTF-8でも出力するファイルが「Shift-JIS」で、文字コードが違うため。
phpファイルの冒頭に下記を書いておく

※ただし、HTMLが書いてあるものでないと、意味をなさないことに注意
したがって今回の場合意味無し

・「文字エンコーディング 変換 php」でリサーチ
mb_convert_encording() がTOPに
下の2)を確認して、上記コードの12行目を下記のように書いてみたら正常出力された

原因

お互いのファイル出力文字コードがちがったため

解決策

mb_convert_encording($str) で、$strに変換したい文字列を入れてから出力すればOK

→よく使うので、関数化して使いまわしたほうがいい
以下は私が作った例

 

参考

1)https://kanda-it-school-kensyu.com/php-intro-contents/pi_ch04/pi_0402/

2)https://www.php.net/manual/ja/function.mb-convert-encoding.php