我的要求是使用伪造者为中国国家/地区创建随机数据。 我正进入(状态 ???使用伪造商为CN国家/地区生成的数据。
对于其他地区(例如en-US和en-AU),数据正在正确生成
Faker faker = new Faker(new Locale("zh","CN"));
faker.name().firstName() - output: ???
faker.address().streetName() - output: ???
faker.address().cityName() - output: ???
任何人都可以帮我解决这个问题。
预先感谢
答案 0 :(得分:1)
基于一些有限的研究(简要介绍了github上的source code),JavaFaker
库确实支持Locale("zh","CN")
。
所以,我认为真正的问题是您的JVM处理输出的方式。
例如,如果您的JVM使用LATIN-1(或其他8位欧洲字符集)作为默认文本编码运行,则它将把中文字符转换为?
...,这是用于替换的字符。无法表示的代码点。
如果您的控制台能够呈现Unicode(UTF-8),并且您已安装了中文字体,请尝试将控制台的默认字符编码更改为UTF-8。
如果已经为UTF-8设置了控制台,请检查将System.getProperty(“ file.encoding”)设置为什么。
阅读以下有关更改Java使用的默认编码的问答: