7

何らかの理由で、Mozilla の JavaScript エンジンであるRhinoでUnicode 文字列が正しく動作しません。REPL に Unicode テキストを入力するか、それを操作すると、意味不明な内容が返されます。

js> 'тотальная киборгизация'
B>B0;L=0O :81>@3870F8O

ASCII 文字は問題なく動作します。

js> 'reprap for everyone'
reprap for everyone

Unix コマンドも問題なく動作します。

$ echo 'тотальная киборгизация'
тотальная киборгизация

JVM出力も問題なく、class Test { public static void main(String[] args) { System.out.println("тотальная киборгизация"); } }キリル文字の出力を正しく実行しています。

Java と Rhino のバージョンは次のとおりです。

$ java -version
java version "1.7.0_09"
OpenJDK Runtime Environment (IcedTea7 2.3.3) (7u9-2.3.3-0ubuntu1~12.10.1)
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)
$ rhino
Rhino 1.7 release 3 2012 05 18

ロケール:

$ echo $LC_TYPE

$ echo $LANG
en_US.UTF-8

に変更LC_ALLen_US.UTF-8ても役に立ちません。

この問題は、この StackOverflow の質問、Javascript using UCS-2と関係がありますか?

何が問題なのですか?Rhino REPL で適切な Unicode を使用するにはどうすればよいですか?

4

1 に答える 1

1

JavaScript は UTF16 よりも前のものであるため、実際には Unicode を適切に処理しないことに注意してください。(これは別の 16 ビット エンコーディング システムを使用しますが、これは似ていますが、確かに同じではありません。)

この 記事では、問題を詳しく説明し、ライブラリと回避策を提供しています

于 2013-11-07T14:36:30.530 に答える