如何在groovy中打印特殊字符

时间:2013-01-10 21:41:04

标签: java groovy

我想在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

2 个答案:

答案 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
相关问题