繁体   English   中英

txt 文件中的特殊字符未在 InputStream 中传递

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM