java 读取文件流乱码输出乱码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 读取文件流乱码输出乱码相关的知识,希望对你有一定的参考价值。
File f1 = new File ("a.txt");
FileInputStream is=new FileInputStream(f1);
int i;
while((i=is.read())!=-1)
System.out.print((char)(i));
纯中文读取:
File f1 = new File ("a.txt");
FileInputStream is=new FileInputStream(f1);
int i;
byte[] b =new byte[2];
while((i=is.read(b))!=-1)
System.out.print(new String(b));
中英文混合的文本读取
byte[] b =new byte[yourtxtlength];
yourtxtlength就是你文本字节的长度 参考技术A 可以直接这么写,加入字符编码:
InputStreamReader isr = new InputStreamReader(new FileInputStream("a.txt"), "utf-8");
剩下的一样 参考技术B 汉字出现乱码,是因为你用字节流来读取汉字了,你应该用字符流,FileReader来读取文件,你试一下吧
java数据库中文乱码怎么解决
可能原因一:数据库不支持中文,或者是数据库编码格式和java代码编码格式不一致,这种情况需要修改数据库编码格式:ALTER SYSTEM DISABLE RESTRICTED SESSION;改完编码后执行
sql> conn / as sysdba;
sql> shutdown immediate;
database closed.
database dismounted.
oracle instance shut down.
sql> startup mount;
oracle instance started.
total system global area 135337420 bytes
fixed size 452044 bytes
variable size 109051904 bytes
database buffers 25165824 bytes
redo buffers 667648 bytes
database mounted.
sql> alter system enable restricted session;
system altered.
sql> alter system set job_queue_processes=0;
system altered.
sql> alter system set aq_tm_processes=0;
system altered.
sql> alter database open;
database altered.
sql> alter database character set internal_use UTF-8;
sql> shutdown immediate;
sql> startup;
可能原因二:java代码生成插入语句的时候,已经发生乱码现象,这种只能是修改项目编码格式或者是在数据获取的时候直接转译代码编码格式来实现了。 参考技术A 1:检查数据库编码
2:看下程序sql插入时候的数据是不是已经乱码,如果是就在程序里处理一下,如果没有乱码,就检查一下java项目编码与数据库的编码是否一致
以上是关于java 读取文件流乱码输出乱码的主要内容,如果未能解决你的问题,请参考以下文章