spring 中使用动态 groovy bean 没有可设置 groovy 脚本文件的编码,是使用系统默认的编码。工作中,服务器上的系统默认编码不是 utf-8,郁闷,写的 groovy 是用 utf-8 编码。程序一发布到服务器上运行结果不正确。
spring 中的 xml 没能配置文件编码,就连在 spring 的xml 内嵌 groovy 脚本都无法使 groovy 正常运行。记得之前的程序是改变系统默认编码的方式来运行 java 程序。那也拿来用用。
java 有个启动属性参数:file.encoding 。好就用它:
- $JAVA_HOME/bin/java -cp . -Dclient.encoding.override=UTF-8 -Dfile.encoding=UTF-8 -Duser.language=zh -Duser.region=CN -Djava.ext.dirs=../lib com.chenlb.demo.Main "hi chenlb"
其实只要 file.encoding 就可以了,其它是从旧的程序复制过来。
还有一种方案就是把 groovy 的中文改用其它方式表示,用 native2ascii 转换它,印象中可行。