Webアプリケーションでは、文字コードのミスマッチによって日本語の文字が正しく表示されない「文字化け」という現象がよく起こります。以前は、UNIX系のOSではEUC-JP、MS-DOS系のOSではShift_JISが多く使われていましたが、最近は複数の言語を同時に扱うことができるUnicodeが普及してきています。今ではほとんどのブラウザがUnicodeに対応しているので(*1)、Webアプリケーションを開発する場合は、文字コードをUnicodeに統一しておくとよいでしょう。
Unicodeにはいくつかの種類がありますが、多くの場合はUTF-8が使われます。SolarisもかつてはEUC-JPが標準でしたが、最近のOpenSolarisなどではUTF-8も問題なく使えるようになっています。言語や通貨、年号など国ごとに異なる情報を「ロケール」と呼びますが、OpenSolarisでは、日本語に関して次の4つのロケールが用意されています。
ロケールの設定は、環境変数LANGに保存されています。現在のロケールを確認するには、次のように操作します(以下の例はシェルがbashの場合)。

Puttyの文字コード設定
TeraTermProは「設定」メニューの「端末」を選ぶと、「端末の設定」ダイアログが表示され「漢字-受信」と「漢字-送信」で文字コードを設定することができます。

TeraTermProの文字コード設定
ついでにMySQLのデフォルトの文字コードもUTF-8にしておくとよいでしょう。/etc/mysql/my.cnf ファイルを開いて[mysql]セクションと[mysqld]セクションに、次のような行を追加します。
Unicodeにはいくつかの種類がありますが、多くの場合はUTF-8が使われます。SolarisもかつてはEUC-JPが標準でしたが、最近のOpenSolarisなどではUTF-8も問題なく使えるようになっています。言語や通貨、年号など国ごとに異なる情報を「ロケール」と呼びますが、OpenSolarisでは、日本語に関して次の4つのロケールが用意されています。
ロケール | 文字コード |
ja | EUC-JP |
ja_JP.eucJP | EUC-JP |
ja_JP.PCK | Shift_JIS |
ja_JP.UTF-8 | UTF-8 |
ロケールの設定は、環境変数LANGに保存されています。現在のロケールを確認するには、次のように操作します(以下の例はシェルがbashの場合)。
$ echo $LANG
ja_JP.UTF-8
$
ロケールを設定するには、次のように操作します。ja_JP.UTF-8
$
$ export LANG=ja_JP.UTF-8
これを .profileに書くことによって、ログイン時のロケールを設定することができます。また、/etc/default/init に次のような行を追加すれば、OSレベルでデフォルトのロケールを指定することができます。LANG=ja_JP.UTF-8
SSHでサーバに接続する場合は、端末側も文字コードを合わせておく必要があります。端末がWindowsの場合は、PuttyかTeraTermProを使うことが多いと思いますが、PuTTYの場合は「ウィンドウ」の下の「変換」のところで文字コードを設定することができます。
Puttyの文字コード設定
TeraTermProは「設定」メニューの「端末」を選ぶと、「端末の設定」ダイアログが表示され「漢字-受信」と「漢字-送信」で文字コードを設定することができます。

TeraTermProの文字コード設定
ついでにMySQLのデフォルトの文字コードもUTF-8にしておくとよいでしょう。/etc/mysql/my.cnf ファイルを開いて[mysql]セクションと[mysqld]セクションに、次のような行を追加します。
default-character-set=utf8
*1) i-modeなどの携帯端末はUnicodeに対応していないものがまだ多いようです。
投稿:竹形 誠司[takegata]/2008年 04月 30日 06時 47分
/更新:2008年 04月 30日 08時 21分