黑马程序员技术交流社区

标题: 为什么我输入中文时会乱? [打印本页]

作者: NO?    时间: 2014-4-7 23:56
标题: 为什么我输入中文时会乱?
  1. import java.io.BufferedReader;
  2. import java.io.BufferedWriter;
  3. import java.io.FileWriter;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;

  6. public class Test {
  7.         public static void main(String[] args) throws IOException {
  8.                 BufferedReader bm = new BufferedReader(new InputStreamReader(System.in));
  9.                 BufferedWriter bw=new BufferedWriter(new FileWriter("G://aa.java"));
  10.                 String string =null;
  11.                 while (true) {
  12.                          string = bm.readLine();
  13.                         System.out.println(string);
  14.                        
  15.                         if (string.equals("over")) {
  16.                                 break;
  17.                         }
  18.                         bw.write(string);
  19.                         bw.newLine();
  20.                         bw.flush();
  21.                         string=null;
  22.                 }
  23.                 bm.close();
  24.                 bw.close();

  25.         }
  26. }
复制代码
输入英文一点问题没有,可是一切换到英文的时候就不好使了,会无缘无故的冒出英文单词,
还有各种不能换行,等等问题,是不是代码有问题,还是解码的问题?请求指点。
作者: ς高眼光の目标    时间: 2014-4-8 04:59
我试过 没有错啊 都可以,只是我发现我i电脑没有g盘
作者: NO?    时间: 2014-4-8 06:51
ς高眼光の目标 发表于 2014-4-8 04:59
我试过 没有错啊 都可以,只是我发现我i电脑没有g盘

不会吧?难道是我的电脑出问题了?
作者: NO?    时间: 2014-4-8 06:53
发错了。是切换到中文会出问题
作者: NO?    时间: 2014-4-8 06:55
ς高眼光の目标 发表于 2014-4-8 04:59
我试过 没有错啊 都可以,只是我发现我i电脑没有g盘

发错了,是却换到中文会出问题
作者: ﹊佑雨时杰↘    时间: 2014-4-9 17:20
我觉得 是字符编码的问题。  你的eclipse 设置的问题  。   我电脑上有两个eclipse , 一个可以。 另一个和你的问题一样  , 你是这把BufferedReader 读到的字符串这样new String(str.getBytes("gbk"),"utf-8")转换一下 ,看看是什么
作者: 赵小豪    时间: 2014-4-9 19:37
这不属于代码的问题,应该算环境配置什么问题。我曾用Windows编写好的代码去linux运行,结果中文都是乱码。我的批注都是中文所以无法识别,这跟系统的环境相关。
作者: 赵小豪    时间: 2014-4-9 19:44
还有一个就是查看一下Tomcat中的字符集编码是否是设成了UTF-8,如果是还不成那就换个 "gbk" 或 "gb2312"在试试看看。
作者: yooozooo    时间: 2014-4-9 23:19
这应该是eclipse的bug。
程序执行完第14行: System.out.println(string); 后, 控制台的光标位置应该在输出内容的下一行,但eclipse中光标却定位到了输出内容的最前端。英文输入时没影响,但在中文输入的时候会出现中英文混合的情况等问题。
解决方法:
当再次输入中文时可手动用方向键将光标移到下一行。
PS. 有时候在程序编写正确的情况下eclipse的控制台中会出现意想不到的现象,不要怀疑自己的代码,直接用windows自带的cmd 命令提示符编译运行下试试!
希望能够帮到你~




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