⑴ java,为什么读取文本文件里面的汉字是乱码啊,怎么改啊
汉字的
字符集
不匹配,比如说用UTF-8字举陪符集去解析GBK字符集的汉字就会变成
乱码
这里不要用FileReader,这个类用的含答橘是默认字符集去读取文本,改用InputStreamReader,它的
构造方法
中能够指定字符集,让它谈团作为BufferedReader的源,就不会乱码了
hcl=new
BufferedReader(new
InputStreamReader(new
FileInputStream
(wjlj
),
"GBK"));
如果还是乱码,就把GBK改成UTF-8
⑵ Java读取linux系统中文文件名时候乱码,并显示文件不存在
我记得抄InputStreamReader和OutputStreamWriter不是可以设置编码的吗?
方式应该是:OutputStreamWriter writer = new OutputStreamWriter(fop, "UTF-8");
InputStreamReader reader = new InputStreamReader(fip, "UTF-8");
这样还乱码?那就二进制读取就行了。
记得保证整个编译环境编码统一。
⑶ Java读取linux文件名时候乱码
要不文件名中含有中文字符,可以试试gb2312编码
⑷ java读取linux下文件名乱码
Linux下读复取文件名乱码可能的原制因是:
1.linux系统默认编码不支持中文字符
2.文件名本身是乱码
解决方案是在读取文件名的时候,要进行显式的编码转换如下:
FileInputStreamfis=newFileInputStream("fileName");
InputStreamReaderisr=newInputStreamReader(fis,"utf-8");
⑸ JAVA读写文件,如何避免中文乱码
最近在做HTML静态生成,需要从硬盘上把模版文件的内容读出来。然后,替换相关标签写到指定的文件中。无论是读写,都遇到了中文乱码问题。试过多种方法,发现下面一种可以避免中文乱码。(无论读取还是写入一定要进行编码转换。)
1、JAVA读取文件,避免中文乱码。
/**
* 读取文件内容
*
* @param filePathAndName
* String 如 c:\\1.txt 绝对路径
* @return boolean
*/
public static String readFile(String filePathAndName) {
String fileContent = "";
try {
File f = new File(filePathAndName);
if(f.isFile()&&f.exists()){
InputStreamReader read = new InputStreamReader(new FileInputStream(f),"UTF-8");
BufferedReader reader=new BufferedReader(read);
String line;
while ((line = reader.readLine()) != null) {
fileContent += line;
}
read.close();
}
} catch (Exception e) {
System.out.println("读取文件内容操作出错");
e.printStackTrace();
}
return fileContent;
}
2、JAVA写入文件,避免中文乱码。
public static void writeFile(String filePathAndName, String fileContent) {
try {
File f = new File(filePathAndName);
if (!f.exists()) {
f.createNewFile();
}
OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f),"UTF-8");
BufferedWriter writer=new BufferedWriter(write);
//PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(filePathAndName)));
//PrintWriter writer = new PrintWriter(new FileWriter(filePathAndName));
writer.write(fileContent);
writer.close();
} catch (Exception e) {
System.out.println("写文件内容操作出错");
e.printStackTrace();
}
}
我试过写入的时候用
1、PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(filePathAndName)));
2、PrintWriter writer = new PrintWriter(new FileWriter(filePathAndName));
都不行。
以上代码经过运行可以避免中文乱码,关键是要编码转换。
⑹ java程序读取properties配置文件出现中文乱码
你的properties文件编译过了吗?凡是有非西欧的字符都应该事先编译的,具体方法如下:
比如你有一个1.properties文件(含有非西欧字符),你可以在cmd窗口中切换到1.properties文件所在目录,然后输入native2ascii -reverse -encoding gb2312 1.properties ActionName_zh_CN.properties
1.properties为转换之前的文件名 ActionName_zh_CN.properties为转换之后的文件名,其中-encoding后面的gb2312是可以变的如 utf-8等
⑺ java程序读取properties配置文件出现中文乱码
你的properties文件编译过抄了吗?凡是有非西欧的字符都应该事先编译的,具体方法如下:
比如你有一个1.properties文件(含有非西欧字符),你可以在cmd窗口中切换到1.properties文件所在目录,然后输入native2ascii
-reverse
-encoding
gb2312
1.properties
ActionName_zh_CN.properties
1.properties为转换之前的文件名
ActionName_zh_CN.properties为转换之后的文件名,其中-encoding后面的gb2312是可以变的如
utf-8等
⑻ java读写文件,在服务器显示乱码问题
写入文件的抄时候设置下编袭码格式即可,之后读取就不会是乱码的。
可以通过“FileOutputStream”创建文件实例,之后过“OutputStreamWriter”流的形式进行存储,举例:
OutputStreamWriter pw = null;//定义一个流
pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"UTF-8");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例
pw.write("我是要写入到记事本文件的内容");//将要写入文件的内容,可以多次write
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
⑼ java文件名乱码
修改一下文件的编码格式,utf-8。
右击乱码文件,选择propertise,在Text file encoding 处修改编码格式。
⑽ java读取文件乱码
那是你选中的文件内容字符编码与jvm缺省的文件编码不一致,如unix下jvm缺省文件编码一般为iso8859-1,而回你的文件内容可能使用了GBK,可使用如下答代码:
FileInputStream fis = new FileInputStream(Abs);
InputStreamReader isr = new InputStreamReader(fis, "GBK"); //GBK替换成你文件内容使用的编码
BufferedReader br = new BufferedReader(isr);