gbk和utf-8

24 篇文章 0 订阅

java的字符类型 char 占用2个直接,因为他是Unicode编码
Java简单数据类型
简单类型 大小 范围/精度 
float 4 字节 32位IEEE 754单精度 
double 8 字节 64位IEEE 754双精度 
byte 1字节 -128到127 
short 2 字节 -32,768到32,767 
int 4 字节 -2,147,483,648到2,147,483,647 
long 8 字节 -9,223,372,036,854,775,808到9,223,372,036, 854,775,807 
char 2 字节 整个Unicode字符集 
boolean 1 位 True或者false

读文件乱码的话用bre.readLine()),表示整行读取;

出现问题的原因是字节流中每个汉字是两个字节,所以肯定会出现乱码的,首先确认你的字符编码,gbk编码中文是2个字节,utf编码是3个字节代表一个字符,read读到的是一个节,一个中文,当然就读半个字节了,不完全当然是要将字节流通过BufferedReader变成按行读取的就可以了。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
System.out.println(str);//原样输出读到的内容
};
备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。

或者:

_reader = new BufferedReader(new InputStreamReader(_is, "GBK"))



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值