replyツイートはじめにコマンドラインツールをPHPで作っているのですが、Windows7で実行するときに、cmd.exeではUTF-8が文字化けしてしまいました。そこでWindows7でUTF-8が表示できるコンソールを実現しました。(2015年2月24日:Windows8.1について追記しました。作戦としては以下が考えられます。Cygwinのような、異なるシェルをインストールする。cmd.exeのコードページを変えてUTF-8が表示できるようにする。php.iniを編集してphp.exeの出力がShift_JISになるようにする。1点目のCygwinは、何かと肥大しがちなのでシェルだけのためにインストールしたくありません。2点目については、Windows7のcmd.exeはUTF-8での日本語表示は正式対応していないようです。Unicode」の章には、貴重なトライアルの様子が書かれています。65001する」と可能な旨が書かれていましたが、私の環境ではできませんでした。裏ワザ的な対応はバージョンや環境に左右されそうですね。3点目についてはiniファイルを作る前に、コード内でset_iniでいろいろと書いてみたのですが、実現できませんでした。telnetdを使う「そういえばWindowsにtelnetdがあったような。ターミナルの文字コードをUTF-8にしてTelnet接続すればどうだろう?」と思い、Google先生に聞いてみると、telnetd(Telnetサーバー)はWindows7にもあるようです。手順を以下に簡単に示します。「コントロールパネル>プログラムと機能」を開く「Windowsの機能の有効化または無効化」をクリック「Windowsの機能」のダイアログにて、「Telnetサーバー」にチェックをいれ、「OK」をクリック「コントロールパネル>プログラムと機能>サービス」を開くリストより「Telnet」をダブルクリック「Telnetのプロパティ」のダイアログにて、「開始」をクリック起動時に自動実行する場合は「スタートアップの種類」を「自動」にして「OK」をクリックする。(セキュリティにご注意。8.1の場合>Windows8.1では、上の4点目にて、「コントロールパネル>プログラムの機能」に「サービス」がありません。サービスの設定は以下のように開きます。Windowsキー+Xにて開くメニューより、「コンピューターの管理」を選択。「コンピューターの管理」が開くので、左のツリーより「サービスとアプリケーション>サービス」を選択。ログインする前に「TelnetClients」というユーザーグループにユーザーを追加してく必要があります。Windowsキー+Xにて開くメニューより、「コマンドプロンプト(管理者)」を選択。ここに<user>はWindows上のユーザー名です。</2015年2月24日追記>ターミナルソフトから接続ターミナルソフト(例えばPoderosa)を起動し、サーバーに「localhost」、接続に「telnet」を選択して自分自身にtelnet接続します。Windowsにログインするときの名前とパスワードでログインします。このようにUTF-8が表示できるようになりました。まとめ目的は達成しました。Tabキーでのパス入力保管や、上下キーでのコマンド履歴参照ができません。これらは無意識で入力してしまうので、そのたびにカーソルが移動してちょっとストレス。新たにソフトをインストールしたり、レジストリをいじったりせずに、お手軽にUTF-8コンソールが実現できました。コメントをキャンセルメールアドレスが公開されることはありません。