javac命令encoding和编码解码的关系

在javac命令中,encoding表示在进行编译时会使用什么样的编码去读源文件。那么针对以下的代码:

//源文件使用ide默认编码 UTF8编码
		String s = "中文测试代码";
		OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream("d:/t.txt"));
		writer.write(s);
		writer.close();

对以上的utf8源代码,我们在cmd下分别使用以下3种命令进行编译并执行(中文版windows7操作系统)。

  • 编译1    javac T.java
  • 编译2    javac -encoding GBK T.java
  • 编译3    javac -encoding UTF8 T.java

执行命令均为    java T

在最终的输出文件中,我们使用系统自带记事本打开相应的输出文件t.txt,会发现。3种编译的class文件在同一种执行命令下均能够正常显示相应的文字,并且没有乱码发生。
这里面就涉及到了默认编码,编码以及互相转换的问题,这里不涉及编码之间复杂的关系,只是从生成的class文件以及文件的执行上分析这里的运行结果。

继续阅读“javac命令encoding和编码解码的关系”

jboss7中配置get方式的编码处理

在tomcat中,处理get方式请求是通过在server.xml中,配置URIEncoding=UTF-8即可以处理编码问题,并且在早期的jboss中,也是通过类似的方式进行处理。但是在jboss7当中,这种处理方式已不再有效,需要采用其它的方式。

其实也很简单,针对于使用standard方式启动的jboss,只需要在standard.xml中配置以下即可。

<server xmlns="urn:jboss:domain:1.2">
    <extensions>
        <extension module="org.jboss.as.clustering.infinispan"/>
        <extension module="org.jboss.as.configadmin"/>
        <extension module="org.jboss.as.connector"/>
        <extension module="org.jboss.as.deployment-scanner"/>
    </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>
......
    <management>
        <security-realms>

只需要将上文中,省略号之间的代码加到配置文件中即可。这其实与以前的配置差不多,只是放到其它位置而已。
针对post请求处理,需要使用encodingFilter即可,这与原来的处理是一样的。
本文参考了:http://jbosscn.iteye.com/blog/1180591 JBoss7配置指南(四)