Java IO操作——字符编码
来源:互联网 发布:淘宝装修全套教程 编辑:程序博客网 时间:2024/06/05 07:00
学习目标
了解常用的几种编码
掌握乱码的产生原因
编码:
在计算机的世界里,任何的文字都是以指定的编码方式存在的,在JAVA程序的开发中最常见的是以下的几种编码:
ISO8859-1、GBK/GB2312、unicode、UTF
iso-8859-1编码属于单字节编码,最多只能表示0~255的字符范围,主要在英文上应用。
GBK/GB2312:中文的国标编码,专门用来表示汉字,是双字节编码。
unicode:Java中就是使用此编码方式,也是最标准的一种编码,是使用16进制表示的编码。但此编码不兼容iso8859-1编码。
UTF:由于unicode不支持iso8859-1编码,而且容易占用更多的空间,而且对于英文字母也需要使用两个字节编码,这样使用unicode不便于传输和存储,因此产生了utf编码,utf兼容iso8859-1编码,同时也可以用来表示所有的语言字符,不过utf编码是不定长编码,每一个字符的长度从1~6个字节不等,一般在中文网页中使用此编码,因为这样可以节省空间。
乱码的产生
在程序中如果处理不好字符的编码,则就有可能出现乱码问题,如果现在本机的默认编码是GBK,但在程序中使用了iso-8859-1编码,则就会出现字符的乱码情况,就好比两个人交谈,一个人说的是中文,另外一个人说的是其他语言,如果语言不同,则肯定无法沟通。
如果没有处理好编码的问题,则肯定在程序中出现乱码。
得到本机的编码显示:
使用System类可以取得与系统有关的信息,那么直接使用此类就可以找到系统的默认编码,使用如下方法:
public static Properties getProperty()
System类可以取得系统的相关信息,一直在接触此类。
public class CharSetDemo01{public static void main(String args[]){System.out.println("系统默认编码:" +System.getProperty("file.encoding")) ;// 获取当前系统编码}};因为现在的本机环境,是中文环境,所以是使用GBK进行编码,很明显如果现在在程序中使用了ISO8859-1编码。如果要编码,则需要使用String类的支持。
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
可以指定使用的字符编码。
import java.io.OutputStream ;import java.io.FileOutputStream ;import java.io.File ;public class CharSetDemo02{public static void main(String args[]) throws Exception {File f = new File("D:" + File.separator + "test.txt") ;// 实例化File类OutputStream out = new FileOutputStream(f) ;// 实例化输出流byte b[] = "中国,你好!".getBytes("ISO8859-1") ;// 转码操作out.write(b) ;// 保存out.close() ;// 关闭}};乱码产生的根本原因就是字符编码不统一造成的。
总结:
1、了解几种常用的编码特点。
2、理解乱码是如何产生的。
0 0
- Java IO操作——字符编码
- java IO操作之字符、字节和编码
- JAVA IO系列---字符编码
- Java IO _字符编码
- Java IO _字符编码
- java-IO流-字符编码
- Java IO和字符编码
- java IO 字符编码相关
- Java IO 4:字符编码
- Java字符编码操作
- JAVA IO操作——字节流和字符流
- Java IO流——字符流读写操作
- C++ IO操作与字符编码
- 黑马程序员——【Java】IO——操作字符数组的IO对象:ByteArrayInputStream & ByteArrayOutputStream
- Java—IO操作
- 黑马程序员——【Java】IO——转换流的字符编码
- IO操作——字符流
- JAVA中的字符编码操作
- Android 为弹窗添加动画效果
- HDU-5810-Balls and Boxes-数学推导(找规律)
- 跨域请求
- 自建的用户登录执行数据库邮件出现错误
- 通过类,datatable,和List来获得数据库表的联合字段
- Java IO操作——字符编码
- Wiki管理工具生成器
- Android性能分析工具整理汇总
- Android动画(三):属性动画
- LBS应用的路径引导方法
- linux split命令参数及用法详解---linux分割文件命令
- VPN 学习笔记
- 283. Move Zeroes
- 华为OJ—四则运算