中国語の文字列「哈哈」をclojureで印刷しようとしていました。実行環境は Windows 7 ですcmd.exe
。デフォルトのコード ページは CP936(GBK) です。cmd.exe
を実行するだけで、「哈哈」が正しく表示された状態で GBK エンコードされたソース ファイルを表示できますtype core.clj
。
のコード ページを 65001 に変更cmd.exe
して UTF-8 を有効にできることはわかっていますが、知りたいことは次のとおりです。
cmd.exe
Java プログラムを使用してWin7 で GBK 文字を印刷しようとするのはばかげていますか?- Clojure で GBK エンコーディングを使用して文字列を「生成」できますか?
私は leiningen を使用してプロジェクトをセットアップしました。project.clj
ファイルは次のとおりです。
(defproject fibo "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.5.1"]]
:jvm-opts ["-Dfile.encoding=utf-8"]
:main fibo.core)
ソースコードは次のとおりです。
(ns fibo.core
(:gen-class))
(defn -main
[& args]
;; work around dangerous default behaviour in Clojure
(alter-var-root #'*read-eval* (constantly false))
(println "哈哈"))
出力は次のようになります。
D:...\_dev\fibo> lein run
????
また、lein run
JAVA_OPTION -Dfile.encoding=xxxを設定してから呼び出してみました。残念ながら、UTF-8 / GBK / GB18030 / ANSI / CP936のどれも役に立ちません????
。
明確にする 1 つのこと: _JAVA_OPTION を使用して file.encoding を変更しようとしたとき:jvm-opts ["-Dfile.encoding=utf-8"]
、同時に使用しませんでした。上記のエンコーディングをすべて試した後、運が悪かったので、:jvm-opts
デフォルトのエンコーディングとして UTF-8 を使用して project.clj を追加しました。