質問

ASCIIシーケンスをUnicode文字に変換するコードを単体テストすると、Clojureテストの出力に問題があることがわかりました。

端末がUnicode文字を出力できることをテストしました(テストファイルをカタログ化することにより)。これは正常に機能するため、問題はleiningen、Clojure、またはclojure.testに何らかの形で関連しているようです。

テストの例を次に示します(ユニコードのギリシャ語セクションを使用します。ギリシャ拡張文字も使用しますが、同じ問題が当てはまると思います): ジェネラコディセタグプレ

入力にスペースがないために失敗することを意味します。 lein testからの出力は次のとおりです。 ジェネラコディセタグプレ

ここで何が間違っているのですか?これは端末エミュレーションの問題ですか、それともclojureに関連する問題ですか? Slime / swank / emacsを使用してREPLでコードを実行するときに同じ問題が発生します。 emacsのREPLは、Unicode出力の疑問符のみを出力します(ただし、emacsはUnicodeを十分に理解できます)。

これをターミナルとiTerm(OS X)で実行してみましたが、同じ結果になりました。

役に立ちましたか?

解決

Javaにオプションを渡して、*out*の出力エンコーディングを強制し、Unicodeが次のように機能するようにすることができます。 ジェネラコディセタグプレ

Leiningenを使用しているので、このプロパティをproject.cljファイルに追加しました: ジェネラコディセタグプレ

他のヒント

Clojure自体は明確に見えます(これはUbuntu 10.10、gnome-terminal、OpenJDKです): ジェネラコディセタグプレ

しかし、emacs / swank / clojure-maven-plugin / mavenを壊します

emacsのREPLで: ジェネラコディセタグプレ

maven、以下の単純なpomファイル、およびmvn clojure:replを使用する場合は、問題ありません: ジェネラコディセタグプレ

ただし、このスニペットを使用してjlineライブラリを追加した場合: ジェネラコディセタグプレ

それから私は得る: ジェネラコディセタグプレ

これはあなたのエラーにひどく似ています。したがって、問題はjLine、またはLeiningenとMavenに共通するjLineに関連する他の部分にある可能性があります。

またはもちろん、2つの独立したUnicode関連の障害が発生する可能性があります。

誰かがこれをデバッグしようとしている場合に備えて、これが私のmavenpom.xmlファイルです。 ジェネラコディセタグプレ

これが答えではないことを感謝しますが、役立つかもしれないと思いました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top