我有一个
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("templates/createUser/new-user.txt");
,new-user.txt
的内容为:
Hello™how ru®
但是当它们显示在输出中时,它们显示为
您好,你好吗
您能告诉我应该对我的txt文件做出哪些更改,以便它开始相应地显示数据。
更新
所以这是代码: -
Handlebars handlebars = new Handlebars();
InputStream txtInputStream = this.getClass().getClassLoader()
.getResourceAsStream("templates/createUser/new-user.txt");
Template textTemplate = handlebars.compileInline(IOUtils.toString(txtInputStream));
String emailText = textTemplate.apply(vars);
答案 0 :(得分:1)
问题不在于InputStream对象。 InputStreams只是字节流,它们不区分编码。问题是你应该用这个作为你的读者:
Reader reader = new InputStreamReader(inputStream, "UTF-8");
而不是使用它:
Reader reader = new InputStreamReader(inputStream); // does not specify encoding
然后您可以使用以下字符串获取字符串:
String theString = IOUtils.toString(inputStream, "UTF-8");
修改强> 我没有意识到你在评论中发布了完整的代码。只需将您的倒数第二行更改为:
Template textTemplate = handlebars.compileInline(IOUtils.toString(txtInputStream, "UTF-8"));