我尝试了所有可能的答案this和this,但它对我不起作用。现在写问题。
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 opts(-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 back bean控制器中工作。