黑马程序员技术交流社区

标题: IO流的问题 [打印本页]

作者: SOAR    时间: 2013-4-27 21:51
标题: IO流的问题
本帖最后由 SOAR 于 2013-5-6 13:14 编辑

在我们的webapp下放着一个文本文件test.txt,里面有中文,我想将它读出来然后放在application中,在一个jsp页面显示出来。但是我用下面的方法读出来以后在页面显示的怎么是乱码呢?
BufferedReader in
   = new BufferedReader(new FileReader("test.txt"));
List<String> names = new ArrayList<String>();
String str = in.readLine();
while(str!=null){
    names.add(str);
    str=in.readLine()
}

但是我把这段代码写在一个普通的main方法测试的时候,就好了。为什么呢?求高手讲解。
作者: 于淼    时间: 2013-4-27 22:39
我虽然不熟悉JAVA 但是有没有可能因为编码的问题呢?
作者: 孙浩    时间: 2013-4-28 18:20
你把jsp页面的编码设置为gbk试试!乱码问题应该是编码不一致造成的!
作者: 金辉    时间: 2013-4-28 18:34
编码格式问题,把txt文件和jsp都另存为utf-8格式
作者: 暮夕忆夕颜    时间: 2013-4-28 22:24
码表问题吧
作者: 刘沛霞    时间: 2013-4-30 20:40
一般都是编码的问题,你可以在项目里加过滤器,对流的编码进行设置。或者在jsp页面进行编码,在servlet进行解码具体urlencoder 类。第三种方法就是硬编码,直接将流硬编码为一种编码格式。
作者: 曹睿翔    时间: 2013-5-1 07:18
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
作者: SOAR    时间: 2013-5-6 13:07
于淼 发表于 2013-4-27 22:39
我虽然不熟悉JAVA 但是有没有可能因为编码的问题呢?

首先谢谢你。
我试过了,但是还是乱码。
作者: SOAR    时间: 2013-5-6 13:08
金辉 发表于 2013-4-28 18:34
编码格式问题,把txt文件和jsp都另存为utf-8格式

谢谢。
改过了没用。
作者: SOAR    时间: 2013-5-6 13:12
找了好久,终于在google上发现了解决方案,现在就贴出来,希望大家可以共同进步哈。
我们应该构建这样一个BufferedReader
File f = new File("test.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"utf-8");
在底层还是需要读字节流的方式,这样才能在容器中避免乱码。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2