ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

ScalaコミュのScala2.7.0RC3インタプリタで日本語通らない!

  • mixiチェック
  • このエントリーをはてなブックマークに追加
2.7.0RC2までは特に問題なくインタプリタのプロンプト上で
日本語の入出力できていたのに、なにやらRC3ではうまく日本語入力も表示もできません。

Welcome to Scala version 2.7.0-RC3 (Java HotSpot(TM) Client VM, Java 1.6.0_03).
Type in expressions to have them evaluated.
Type :help for more information.

val cj: Char = '??'      //ここで'あ'を入力したつもりだが表示に反映されない
<console>:1: error: missing terminating quote //いろいろ怒られる
val cj: Char = '??'
^
<console>:1: error: illegal character: '?'
val cj: Char = '??'
^
<console>:1: error: unterminated character literal
val cj: Char = '??'
^
**しかしながら、次のようにIntでコード指定すれば内部的には保持されている**

scala> val c: Char = 12354
c: Char = あ

scala> println(c)


といったことはできるので、内部的には問題なくて、REPループの
入出力ストリームでの文字列の扱いが変なようですね。。。

どなたか、もうすでに開発チームとのコネクションのある方、
finalにする前に連絡してもらえるとうれしいのですが。。。

コメント(6)

scala> val c: Char = "あ"(0)
c: Char = あ
もだめなのでしょうか。
ちりとてちん。
お初にお目にかかります。よろしく。

= "あ"(0) の"あ"を入力した瞬間、文字化けが表示され、マルチバイト文字とは認識されずに
1バイト2文字(たとえば??)としてインタプリタに渡されてしまうのです。
val c: Char = 12354のようにcodeで日本語を指定して渡せれば、
表示はちゃんと日本語で行われます。

そちらでは、2.7.0RC3 上で同じ現象は起きてないですか?

Ubuntu Linux 7.10では
問題なく日本語(と言うかUTF-8)で入力できました。

もしかしたら、SJISだから?
2.7.0-RC3 on Windows XP ProfessionalでHa2さんと同じ現象が再現しました。
これはちょっと嫌ですね。
ちりとてちん。
この際なので、英語でScalaのMLである scala@listes.epfl.ch にメールしてみました。
英語でちりとてちん っていうのが挨拶できなかったのが残念!

たぶん開発チームのメンバーである
Geoffrey Alan Washburn <geoffrey.washburn@epfl.ch>さんに教えてもらって
わかったことは、インタプリタを立ち上げる際に

>scala -Xnojline

とやればよいということ。
これで確かに、RC2までのときと同じ挙動に戻ったようです。
ちゃんとコマンドラインから日本語入力できます。

ということで、2.7.0ではRC2からRC3にする際に
コマンドラインでのREPループ周りに手を入れているようですね!

== 以下原文 ==
The current hypothesis is that this is a result of putting jline in the
default distribution. Try running scala with the option "-Xnojline",
and let us know whether it solves the problem.
ちりとてちん。

Scalaの開発チームと話をしてわかったことは、
彼らは、RC2からRC3にする際に、
JLineというJava library for handling console input.をデフォールトで組み込むようにした
ということのようです。

ですので、非常に皮肉なことに、1つ前のトピック「複数行のペーストの適切表示」が
可能になったのは、このJLineライブラリのおかげなのですが、
一方で、こいつがうまく日本語入力を処理してくれていないようです。
JLineの組み込みの際に日本語もハンドリングするように適切なオプションを
設定する必要があるのかな??

== こちら原文 ==
To our knowledge including jline by
default (rather than requiring users to install it via sbaz or some
other means) was the only thing we changed between 2.7.0-RC2 and
2.7.0-RC3 that would have affected the behavior of the interactive
top-level.

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Scala 更新情報

Scalaのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング