2012-11-07 74 views
4

我試過所有可能的答案thisthis,但它沒有爲我工作。現在寫這個問題。編碼jboss 7

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:=–ø—Ä–∏–≤–µ—Ç 

EDIT 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:上面的代碼片段在javax.enterprise.context.RequestScoped中使用JSF頁面按下按鈕時返回bean控制器。

+2

您是否嘗試過它寫入文件,而不是檢查,如果它可能是一個問題控制檯本身? –

+0

特別是您看到輸出的位置並不清楚。 –

+0

調用convertValue方法在哪裏?它是servlet,jsp還有其他的東西嗎?你能提供一個代碼示例嗎? – szhem

回答

1

嘗試添加這在您的standalone.conf:

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

它的工作對我來說,當VM的直接選項沒有工作。

+0

嘗試過相同的結果 - - - - - - - - - - - - - - - - - - - - - - - - - –

1

我沒有一臺Mac,但relatedquestions表明你的情況這樣的代碼應該工作:

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; 
} 
+0

嘗試過 - - - - - - - - - ù-O-° - ¢ - †-O-†-U-I-E-U-O-i –