在tomcat环境下一直对String.getBytes()的编码格式存在疑问,总结一下tomcat环境下和以某个main函数执行String.getBytes()的编码设置的问题。本文基于环境windows和eclipse,可以举一反三。
String.getBytes()的编码格式和jvm运行环境的编码格式有关。
有个问题:不要将当前文件的编码保存格式和JVM的运行环境的编码格式混为一谈。
1:以main函数形式运行
main函数直接以debug或者run形式运行,jvm编码格式则为当前文件格式;
2:tomcat环境下运行
tomcat服务器依赖于本机系统,不设置编码格式的时候,tomcat服务器的运行编码依赖于本机,windows下编码为GBK,
eclipse下看下编码设置:
可以看到默认的运行环境的编码继承自当前系统,为GBK,我们可以根据实际情况修改为系统对应的运行编码,比如我当前未UTF-8。
关于eclipse中的文件编码和实际运行环境系统的编码格式的问题
这里我们看到的是该文件的编码格式,tomcat服务器启动的时候并没有直接读取某个文件的编码格式来作为容器的编码格式,所以要对tomcat服务的编码格式进行修改,需要修改tomcat的启动参数。