[英]How to display multi-byte characters in Groovy?
下面的代码显示?????,当我给出多字节语言Ex时:中文
import groovy.json.JsonSlurper
def jsonObj = new JsonSlurper().parseText( '{ "name":"怎么样", "age": 23}')
println jsonObj.name
println jsonObj.age
输出:
???????
23
我需要做任何编码和解码来处理吗?
如果是,我如何需要将该值作为Json参数传递给上述ParseText方法?
根据下面的API,有一种方法可以在其中传递参数以指定字符集。
http://docs.groovy-lang.org/latest/html/gapi/groovy/json/JsonSlurper.html
下面的方法可能有用。 将您的文本转换为字节数组,然后使用以下方法。
parse(byte[] bytes, String charset)
我可以想到的另一种情况是,源文件是使用字符集编码的,而字符集不是操作系统的默认字符集。
正如Jon Skeet所说:您需要一个具有Unicode的控制台(例如eclipse的grep控制台: http : //marian.schedenig.name/projects/grep-console/ )才能正确格式化输出。
根本不是json问题。 Json实现在这里可以与旧的Java 2字节Unicode字符一起使用。 象形文字不是问题。 问题出在您的输出编码中。 是Windows还是Mac控制台?
验证码:
def jsonObj = new JsonSlurper().parseText( '{ "name":"怎么样", "age": 23}')
Writer unicodeFileWriter = new OutputStreamWriter( new FileOutputStream("herogliph.txt"), "UTF-8");
unicodeFileWriter.write(jsonObj.toString());
unicodeFileWriter.close()
生成的herogliph.txt包含有效名称。
尝试这样的事情。
PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.println(unicodeMessage);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.