4

考えられるすべての答えthisthisを試しましたが、うまくいきませんでした。今、質問を書いています。

private String convertValue(String val){
    System.out.println("convert input:" + val);
    String res = "";
    StringTokenizer st = new StringTokenizer(val,",");
    while(st.hasMoreTokens()){
        String token = st.nextToken();
        if (token.matches("([0-9]*)")) {
            char c = (char)Integer.parseInt(token);
            res+=c;
        }else{
            res+=token;
        }
    }
    System.out.println("convert output:" + res);
    return res;
}

jboss 7 を使い果たすと、次のようになります。

convert input:61,1087,1088,1080,1074,1077,1090
convert output:=привет

jboss 7 でのアクションによる実行:

convert input:61,1087,1088,1080,1074,1077,1090
convert output:=??????

正常に動作しないのはなぜですか?

私のstandalone.xml:

 <extension module="org.jboss.as.weld"/>
</extensions>

<system-properties>
    <property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/>
    <property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
</system-properties>

Java オプション (-Dfile.encoding=UTF-8) を追加:

convert input:61,1087,1088,1080,1074,1077,1090
convert output:=–ø—Ä–∏–≤–µ—Ç

編集1:私の環境:

Mac OS X Version 10.7.5
JBoss 7.1.1.Final
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)

編集 2: JSF ページからボタンを押すと、javax.enterprise.context.RequestScoped バック Bean コントローラーで動作する上記のコード スニペット。

4

2 に答える 2

1

私はMacを持っていませんが、関連する 質問は、あなたの場合、そのようなコードが機能するはずであることを示しています:

private String convertValue(String val){
    System.out.println("convert input:" + val);
    String res = "";
    StringTokenizer st = new StringTokenizer(val,",");
    while(st.hasMoreTokens()){
        String token = st.nextToken();
        if (token.matches("([0-9]*)")) {
            char c = (char)Integer.parseInt(token);
            res+=c;
        }else{
            res+=token;
        }
    }

    PrintStream out = new PrintStream(System.out, true, "UTF-8");
    out.println("convert output:" + res);
    return res;
}
于 2012-11-14T22:36:11.430 に答える
1

これをstandalone.confに追加してみてください:

JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"

VMの直接オプションが機能しなかった場合、それは私にとってはうまくいきました。

于 2012-11-13T08:18:39.953 に答える