Windowsコンソール


(For English version, see WindowsConsole)

REPLで大きな文字セット(含日本語)を使う

Gauche 0.9から、Windowsのプリコンパイルバイナリも配布するようになりました。 これは内部エンコーディングをutf-8でコンパイルしてあり、全てのUnicode文字を 扱うことができます。

しかし残念なことに、Windowsコンソール上でのASCII以外の文字のサポートは 制約の多いものとなっています。unix上での使い勝手を想像してると がっかりすることでしょう。

REPLで多言語を使うのに一番良いのは、goshをEmacs内で走らせることです。 Emacs 23やMeadow 3なら、特に複雑な設定をしなくても動きます。 Emacsの変数scheme-program-nameに "\\full\\path\\to\\gosh.exe -i"を設定してください。 ("-i"オプションが無いとプロンプトが出ません)。

どうしてもWindows Consoleを使うハメになったとしたら… 言語環境の設定とコンソールのプロパティの設定によって どこまで出来るかは変わってきます (以降の記述はXP SP3とVista SP2で試しています)。

言語環境が英語の場合 (たぶん他のヨーロッパ系言語でも同じだと思います。)

これで、こんな感じで対話できます。

gosh> (integer->char 955)
#\λ

ただ残念なことに、Unicode対応フォントでCJK文字が含まれている ものはコンソールでは使えないみたいなんですね。

言語環境が日本語の場合

ご愁傷さまです。

コンソールのコードページはデフォルトで932になっていると思います。 これはshift-jisの変種です。フォントはデフォルトでMS Gothicになっているので、 日本語は表示できます。ただし、出力をshift_jisに変換してやる必要があります。 もちろんshift_jisに無い文字は使えません。

英語環境と同じように、コンソールのコードページを65001 (utf-8)に することはできるのですが、そうするとMS Gothic等の日本語を含むフォントが 選択できなくなります。今まで見つけられた65001対応フォントは どうもLatin系文字のみしか含んでいないようです。

どうしてもコンソールで日本語を常用したければ、入出力をshift_jisで 行うようなラッパースクリプトを書いてREPLを走らせることはできる かもしれません。でもそこまでやるなら、EmacsかMeadowを使った 方が楽じゃないかなあ、と思います。


Last modified : 2009/11/23 01:47:21 UTC