转换流处理乱码
发布日期:2021-07-26 18:44:02
浏览次数:6
分类:技术文章
本文共 1714 字,大约阅读时间需要 5 分钟。
转换流:字节流转为字符流,处理乱码(编码集、解码集)
1.编码与解码概念 编码:字符 ---编码字符集->二进制 解码:二进制--解码字符集->字符 2.乱码原因: 1)编码与解码的字符集不统一 2)字节缺少,长度丢失 举例:一个汉字由两个字节组成,如果长度只能读1个,就会乱码package IOCoversion;import java.io.UnsupportedEncodingException;public class CoversionDemo1 { public static void main(String[] args) throws UnsupportedEncodingException{ String str="中国"; //编译 char-->byte byte[] data=str.getBytes(); //编码与解码字符集统一 //解码 System.out.println(new String(data)); data=str.getBytes("gbk");//设定编码字符集 //不统一出现乱码 System.out.println(new String(data)); //编码 byte[] data2="中国".getBytes("utf-8"); //解码 str=new String (data2,"utf-8"); System.out.println(str); }}
package e_IOCoversion;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.Reader;import java.io.UnsupportedEncodingException;/** * 转换流:字节转为字符 * 1、输出流 OutputStreamWriter 编码 * 2、输入流InputStreamReader 解码 * @author john * */public class CoversionDemo2 { //指定解码字符集 public static void main(String[] args) throws IOException { BufferedReader br=new BufferedReader( new InputStreamReader( new FileInputStream(new File("G:/iotest/IOCoversion/b.txt")),"UTF-8") ); String info=null; while(null!=(info=br.readLine())){ System.out.println(info); } //写出文件 BufferedWriter bw=new BufferedWriter( new OutputStreamWriter( new FileOutputStream(new File("G:/iotest/IOCoversion/bb.txt"),true)) ); String str="我不喜欢你皮"; bw.write(str); bw.flush(); br.close(); bw.close(); }}
转载地址:https://blog.csdn.net/qq_41877184/article/details/93974893 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月22日 20时28分16秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Mysql学习笔记(10):事务、视图
2019-05-01
JDBC学习笔记(1):JDBC概述
2019-05-01
JAVA进阶学习笔记(8):反射
2019-05-01
JDBC学习笔记(2):获取数据库连接
2019-05-01
作用域 & 作用域链(ES6学习笔记)
2019-05-01
let & const(ES6学习笔记)
2019-05-01
解构赋值(ES6学习笔记)
2019-05-01
原始值与引用值(ES6学习笔记)
2019-05-01
python使用HTMLTestRunner查看运行函数
2019-05-01
linux系统安装mysql数据库
2019-05-01
接口自动化判断json()取值问题
2019-05-01
fiddler 抓取手机接口
2019-05-01
fiddler怎么抓取手机https请求
2019-05-01
fiddler 安装以及配置
2019-05-01
python的ImportError
2019-05-01
centos最小化安装配置网络问题
2019-05-01
linux安装java环境[JDK1.8]
2019-05-01
linux下安装jenkins+git+python
2019-05-01
jenkins直接安装插件包
2019-05-01