PowerShellでUTF8指定のMySQLが文字化けする

Blog

UTFデフォルトのPowerShellでなぜかの文字化け

先日のMySQLの授業でのこと。

Linuxサーバーに構築したMySQLにSSH接続したPowerShellが文字化けするという事象が発生。

私と一人を除き全員が文字化けを起こしていました。
Shift-jis標準のコマンドプロンプトならいざ知らず、UTFがデフォルトのPowerShellで文字化けを起こすなんて…..

ローカルのMySQLならデータベース側がCP932ってことも考えられますが、Linuxサーバー上のでDBにUTF8を指定したデータベースで文字化けをする端末としない端末が存在するとは不思議な現象です。

ただ原因は100%端末側にあることになります。
念のため、PowerShell側の文字コードを確認しましたが「CodePage:20127」となっています。

chcp 65001

と文字コード指定も確認しましたが、改善しません。

まさかのフォント

なんとか原因を特定したかったのですが、時間ロスは極力避けたい状況でしたので、別の方法で授業を進めることにしました。

授業後で文字化けしなかった訓練生が原因を究明してくれました。
原因はフォント。

私とその訓練生のPowerShellはUTF8対応のフォントが指定されていて、他の訓練生が使っているPCのフォントがUTF8に対応していなかったということでした。

まさかフォントそのものとは…..盲点でした。
優秀な訓練生に救われました。感謝。

MSゴシックなら表示するのですが、PowerShellに含まれる欧文フォントが指定されていると文字化けします。(化けるというかお豆腐になります。)

そういえば私はフォントをCicaに変えていました。
換えたことすらすっかり忘れていました(猛省)

MySQLで文字化けする時の対応

MySQLにWindowsから接続すると文字化けに出くわすことはよくあります。
忘備録としてチェックポイントをもう一回整理しておきます。

  • ターミナルの文字コード指定はUTF8か?
  • ターミナルのフォントはUTF8対応か?
  • データベースとテーブルの文字コード指定はUTF8か?
  • MySQLの設定ファイルを確認

Windows奥が深いです。いつかUTF8がデフォルトになるのだろうか?

 

コメント

タイトルとURLをコピーしました