1

django を使用する場合、http://myhost/XXX/testIndex で呼び出すことができるメソッドを記述します。

def testIndex(request):
    res = os.system('java -jar test.HelloWorld' > /tmp/log)
    ... ...

HelloWorld Java は次のとおりです。

    public class HelloWorld {
    public static void main(String[] args) throws IOException {
        System.out.println("hello!");
        System.out.println("你好!");
}

http:// myhost/XXX/testIndex にアクセスして /tmp/log ファイルを開くと、UTF-8 文字が正しくありません。このような

hello! ??!

どうしたの ?ところで、私はLinux centOSの下にいます

4

1 に答える 1

2

2 つの問題があります。

  1. Java ソースに非 ASCII 文字を入れました。ソース ファイルに使用したエンコーディングを Java コンパイラに伝える必要があるため、これは一般的に良い方法とは見なされません。UTF-8 の場合は、次を試してくださいjavac -encoding UTF-8 HelloWorld.java

  2. System.out のデフォルトのエンコーディングが UTF-8 でない場合があります。実装が異なると動作がわずかに異なる可能性があるため、使用している JRE を指定すると役立ちます。でエンコーディングを明示的に指定できる場合もありますがjava -Dfile.encoding=UTF-8、これもお勧めできません。Sun または OpenJDK JRE の場合は、Java を開始する前に LANG 環境変数を設定する必要があります。これは、Web サーバーの構成で行うかsubprocess、新しいプロセスに渡す環境を指定できる python モジュールを使用して行うことができます。

于 2012-12-27T11:52:55.187 に答える