首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于以数字结尾的中文字符串乱码有关问题

2012-01-20 
关于以数字结尾的中文字符串乱码问题我在保存txt文件的时候出现怪异的情况:new String( 关键字1.getByte

关于以数字结尾的中文字符串乱码问题
我在保存txt文件的时候出现怪异的情况:new String(" 关键字1".getBytes(),"utf-8" ) ,关键字1就会变成" 关键??" 这样的乱码,当其他汉字跟数字结合保存的时候就没发现这种情况,这是怎么回事?有人知道,告诉我呗

[解决办法]

Java code
new String("关键字1".getBytes(), "gbk");
[解决办法]
问题解决了,是我读取文件的时候编码上有问题
总结一下:用
FileReader fileread=new FileReader(file);
BufferedReader bufread=new BufferedReader(fileread);
while((read=bufread.readLine())!=null)
{
readStr=readStr+read;
}
这种方式读取以utf-8保存的文件,部分中文会乱码
所以不推荐
Reader reader = null;
String str = "";
char[] c = new char[1024];
try {
System.out.println("以字符为单位读取文件内容,一次读一个字节:");
// 一次读一个字符
reader = new InputStreamReader(new FileInputStream(file),"utf-8");
int tempchar,i=0;
while ((tempchar = reader.read()) != -1){
//对于windows下,\r\n这两个字符在一起时,表示一个换行。
//但如果这两个字符分开显示时,会换两次行。
//因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。
if (((char)tempchar) != '\r'){
System.out.print((char)tempchar);
c[i]=(char)tempchar;
}
i++;
}
str = new String(c);
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
这个是好方法。切记要加reader = new InputStreamReader(new FileInputStream(file),"utf-8");这句话

热点排行