ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

文字コードはいろいろ悩まされます

以前作られたWebページのエンコードEUC-JPで、データベースの文字コードもECU-JPに設定されています。

現象

お客さんから画面上、文字が化けているという連絡を貰ったので確認すると、機種依存文字の「髙」が文字化けしていました。

「髙」が入力されたのは、該当のデータだけかたと確認したら、他のデータにも入力されていて、他のデータでは文字化けしていませんでした。

原因

文字が化ける場合と化けない場合の理由がわからなかったので、いろいろ試した結果、WindowsとMacの違いが原因でした。

Windowsで「髙」を入力して登録した場合は、Windowsのブラウザで見れば文字化けしていません。
Macで登録してWindowsのブラウザで見ると、文字化けしています。
逆も同じです。

iPhoneのメールアプリで丸付数字があるメールを読むと、違う文字に置き換わってしまうことと同じ現象ではないかと思います。


WebページのエンコードUTF-8で、データベースの文字コードUTF-8に設定されていれば、WindowsとMacのどちらで入力と確認をしても、文字化けはおきませんでした。
UTF-8に統一するのが無難そうです。