phpのUTF-8をWindowsで使えるようにする

公開日| 2015年4月19日   更新日| 2015年4月19日   コメントはありません。

今回は、phpの文字コードの環境についてです。
最近では、phpの文字コードとしてUTF-8が標準になりつつあるあります。 しかし、Windowsでは、UTF-8で記述されたphpを動作させたときに、コマンドプロンプトで文字化けして、正しく表示できません。

その時の対応について簡単に解説してみたいと思います。

まずは、コマンドプロンプトでUTF-8を表示してみる

よくGoogleで検索をかけるとでてくるのが、コマンドプロンプトにUTF-8を表示させるためにchcp コマンドを使うやり方です。

このやり方にもいろいろな設定方法がありますが、XP proで実施してみると、これが、できないんですよね。 レジストリもいじってみても、フォントの切り替えができなくて苦労しちゃいます。 結局、cmd -k を使うと、レジストリをごちゃごちゃいじらなくても良いことに気づきます。

C:\ > cmd /f:on /k "chcp 65001"
Active code page: 65001
C:\ > 

とできるんですよね。

そこで、実際に、UTF-8で記述したファイルを読み込んでみましょう。

C:\ > type test.php
<?php
echo "テスト\n";
?>

C:\ > 

と、こんな感じでUTF-8で記述したphpファイルが読めます。

このphpを実行してみましょう。

C:\ > php test.php

C:\ > 

・・・と何にも出力されなかったりするんですよね。
うまく出力できても改行が入ったりすると、あとは、やっぱり、まともに出力されなかったりするんですよね。

結局、自分の場合、次のようにcgwinをインストールしたんです。

cygwinでUTF-8を表示する

cygwinでUTF-8の文字コードに対応するには、いろいろなやり方があります。
ここでは、cygwin + Tera Term でUTF-8の文字コードに対応してみたいと思います。

Tera Termは、SSH,TELNETなどの通信を行うためのターミナルソフトウェアです。 これが、使い勝手が良いので、これをコマンドシェルみたいに使うためには、cygwinと連動させることでできるようになります。

設定方法について以下の解説してみます。

  1. cygwin , Tera Term それぞれの最新版をダウンロードしておきましょう。
    cygwinのダウンロード : http://www.cygwin.com/
    Tera Termのダウンロード : http://sourceforge.jp/projects/ttssh2/releases/
  2. cygwinをインストールします。
    基本的に画面に従ってインストールするだけですが、shellのtcshをインストールするのを忘れないようにします。
    1. ダウンロードしたsetup.exeを実行します。

      次へをクリックします。
    2. 特別に、詳しい方をを除き、通常は、Install from Internetを選択します。

      次へをクリックします。
    3. Root Directryは、インストール先ディレクトリを指定します。
      使うユーザは、通常は、All Userですが、複数でPCを共有している場合は、Just Meが良いでしょう。

      次へをクリックします。
    4. Location Package Directryは、各Cygwinで必要なソフトウェアをダウンロードする一時的なディレクトリを指定します。

      次へをクリックします。
    5. 特別に、詳しい方をを除き、通常は、Direct Connectionを選択します。

      次へをクリックします。
    6. おおよそ地理的に近そうなサイトをダウンロード先として選択します。

      次へをクリックします。
      ※参考までに、自分は、ftp://ftp.iij.ad.jp を選択しました。
    7. インストールリストが表示されます。この中で、editer – vim , shell – tcsh と shell – rxvt をインストールするようにチェックします。

      次へをクリックします。
      ※自動的にダウンロードされインストールします。
    8. インストールを終えたら、少なくとも一回だけは、cygwin bash を起動しておきます。

      以下のようにプロンプトが表示されればOK。

    9. 最後にインストールしたディレクトリ(3項で指定したディレクトリ + \bin)をシステムプロパティの環境変数pathに加え、保存します。

      編集を終えたら、OKボタンをクリックして保存します。
  3. Tera Termをインストールします。
    基本的に画面に従ってインストールするだけですが、Cygterm+ をインストールするのを忘れないようにします。
    1. ダウンロードしたteraterm-x.xx.exeを実行します。(x.xxは、バージョン)

      日本語を選択し、OKクリックします。

      次へをクリックします。

      同意するをチェックし、次へをクリックします。
    2. インストール先ディレクトリを指定します。

      次へをクリックします。
    3. インストールするツール類を指定します。
      ※ここで、必ず、Cygterm+ にチェックを入れます。

      次へをクリックします。
    4. 言語を指定します。特に日本語以外が良い場合を除き、日本語を選択します。

      次へをクリックします。
    5. プログラムのグループ名を指定します。特に問題なければ、そのままでOKです。
      ※特に、意識的にスタート- プログラム に表示したくない(ショートカットメニューを作成したくない)場合は、下のチェックボックスをチェックします。

      次へをクリックします。
    6. エクスプローラの右クリックで、Cygterm Here というメニューを表示させたい場合は、ここのコンテキストメニューに”Cygterm Here “を追加するにチェックを入れます。

      次へをクリックします。
      Cygterm Here メニューは、エクスプローラの右クリックで表示されます。Cygterm Here をクリックした場合、現在選択のディレクトリをカレントディレクトリとしてCygtermが起動します。

    7. インストール前の最終チェックです。

      インストールをクリックします。

      上記の画面が表示されれば、インストール完了です。
  4. Tera TermからCygtermへ接続します。
    1. Tera Termを起動し、メニューの [ 設定 ] – [ その他の設定 ] を選択します。

    2. Cygwinタブを選択します。

      Cygwinインストール先のパス : 先にインストールを行ったCygwinのフルパスを指定します。 例)C:\Cygwin
      TERM : 起動パラメータの中の/KR=SJIS/KR=UTF8 へ変更します。これで、文字コードをUTF-8にしたことになります。
      SHELL : Cシェルを使いたいので、/bin/tcsh とします。
      ENV_2 : ホームディレクトリを指定したい場合は、ここにHOME=/home/username のように指定します。
      LOGIN_SHELLは、チェックを外します。
    3. Tera Termメニューの [ ファイル ] – [ Cygwin接続 ] を選択します。

      以下のように接続できればOK。

これで環境が整いました。
では、さっそく、先のphpを実行してみましょう。

/cygdrive/c > php test.php
テスト
/cygdrive/c >

これでOK。環境が整いましたね。

Cシェルの環境を変更したい場合は、サンプルがCygwinインストール先ディレクトリ/etc/csh.cshrc にあります。
これをホームディレクトリ(Cygwinインストール先ディレクトリ/home/username/ ) へ、.cshrc としてコピーして、必要なものを編集すると良いでしょう。


コメント

口コミ・評判を投稿 :

ブラウザの JavaScriptが無効となっている場合、コメントの投稿はできません。
コメントを投稿するには、JavaScriptを有効にしてください

お名前 *

メールアドレス *
(口コミ・評判欄には、表示されませんが入力が必要です。)

サイトアドレス



  • ソーシャルブックマーク

  • はてなブックマークへ追加するはてな登録数
ページトップへ