我想在groovy中打印√(\ u221A)http://www.fileformat.info/info/unicode/char/221a/index.htm字符
file = new File("log.txt")
if(!file.exists()){
file.createNewFile()
}
file.withWriter('UTF-8'){
file.write("\u221A √")
}
我在十六进制编辑器中得到 3F 20 E2 3F 9A 。
我不知道为什么会这样。在第二种情况下,它看起来类似于0xE2 0x88 0x9A,这是该字符的正确UTF-8。
我尝试使用选项-c UTF-8运行groovy,但我得到3F 20 3F
答案 0 :(得分:1)
事实证明我需要
JAVA_TOOL_OPTIONS -Dfile.encoding=UTF8
在我的Windows环境变量中。
答案 1 :(得分:0)
对于那些正在使用Groovy脚本处理错误并使用另一个控制台(例如Git Bash)的人,请为JAVA_TOOL_OPTIONS
更改变量名JAVA_OPTS
export JAVA_OPTS=-Dfile.encoding=UTF-8