[英]Special character in txt file not being passed in the InputStream
我有一个
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("templates/createUser/new-user.txt");
并且new-user.txt
的内容是:
你好™ 怎么 ru ®
但是当它们显示在输出中时,它们显示为
你好...如何 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);
问题不在于 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"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.