黑马程序员_字符编码

------- android培训java培训、期待与您交流! ---------- 

 

字符编码

1.字符流的出现为了方便操作字符

2.更重要的是加入了编码的转换

3.通过子类转换流来完成

InputStreamReader  OutputStremWriter

4.在两个对象进行构造的时候,可以加入字符集

-->GBK:2个字节表示一个字符,识别中文

UTF-83个字节表示一个字符,识别中文

Iso8859-1:不识别中文的编码表

编码:byte[] b=s.getBytes("gbk");字符串--->字节数组

解码:String s1=new String(b,"iso8859-1");字节数组--->字符串

Arrays.toString():返回指定数组内容的字符串表现形式

补充的知识点:

服务器默认的编码是ISO8859-1

当编码用GBK,解码用ISO8859-1,会失败;这时用ISO8859-1解码,再用GBK编码;但是当GBKUTF-8用混时,不能再反编,因为GBK和UTF-8都是有识别中文的功能,会出现乱码。

importjava.util.*;

练习1

用不同的编码表编码“你好”

class EncodeDemo

{

       public static void main(String[]args)throws Exception

       {

              Strings="你好";

              byte[]b=s.getBytes("gbk");//编码

              System.out.println(Arrays.toString(b));

              Strings1=new String(b,"iso8859-1");//解码

              System.out.println("s1="+s1);

              //iso8859-1编码

              byte[]b1=s1.getBytes("iso8859-1");

              System.out.println(Arrays.toString(b1));

              Strings2=new String(b1);

              System.out.println("s2:"+s2);

             

       }

}

练习2

编码和解码用不同的编码表

import java.io.*;

class EncodeStream

{

    public static void main(String[]args)throws IOException

       {

      

              readTest();

       }

       public static void readTest()throwsIOException

       {

InputStreamReader isr=

new InputStreamReader(newFileInputStream("utf.txt"),"gbk");

              char[]c=new char[10];

              intlen=isr.read(c);

              Strings=new String(c,0,len);

              System.out.println(s);

              isr.close();

       }

       public static void writeTest()throwsIOException

       {

              OutputStreamWriter osw=new OutputStreamWriter(new  FileOutputStream("utf.txt"),"utf-8");

              osw.write("你好");

              osw.close();

       }

}

特殊:当联通编码时,出现的二进制正好符合utf-8编码表。

 

------- android培训java培训、期待与您交流! ---------- 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值