日期:2014-05-20  浏览次数:20696 次

BufferedReader乱码问题,在线抢分咯~
问题描述:乱码....JAVA项目显示文件字符编码是UTF-8的.

package chapter4;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class StackWordApp {
private String input;
private String output;
public StackWordApp(String in) {
this.input = in;
}
public String revChar() {
StackW stackW = new StackW(input.length());
for(int i = 0; i < input.length(); i++) {
stackW.push(input.charAt(i));
}
output = "";
while(!stackW.isEmpty()) {
char temp = stackW.pop();
output = output + temp;
}
return output;

}
class StackW {
private char[] stackArray;
private int maxSize;
private int top;
public StackW(int maxSize) {
stackArray = new char[maxSize];
this.maxSize = maxSize;
top = -1;
}
public void push(char value) {
this.stackArray[++top] = value;
}
public char pop() {
return stackArray[top--];
}
public boolean isEmpty() {
return (top == -1);
}
}
public class StackWord {
public static void main(String[] args) throws IOException {
while(true) {
System.out.println("请输入字符:");
System.out.flush();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 
String s = reader.readLine();
System.out.println(s);
String str = new String(s.getBytes());
StackWordApp stackWordApp = new StackWordApp(str);
System.out.println(stackWordApp.revChar());
}
}
}

运行结果如下:
请输入字符:
倒萨
鍊掕惃
鍊掕惃
惃掕鍊

------解决方案--------------------
在你StackWord.java文件上右键---properties--text file encoding  选择gbk就可以了。或者想彻底解决这个问题,就用字节流读写吧。
------解决方案--------------------
问题是你系统的默认编码是不是utf_8, 一般都是gbk吧
你得转码
------解决方案--------------------
编码都统一使用utf-8的话不会有问题的