Java字符编码介绍
在计算机中,任何的文字都是以指定的编码方式存在的,在 Java 程序的开发中最常见的是 ISO8859-1、GBK/GB2312、Unicode、 UTF 编码。
Java 中常见编码说明如下:
ISO8859-1:属于单字节编码,最多只能表示 0~255 的字符范围。GBK/GB2312:中文的国标编码,用来表示汉字,属于双字节编码。GBK 可以表示简体中文和繁体中文,而 GB2312 只能表示简体中文。GBK 兼容 GB2312。Unicode:是一种编码规范,是为解决全球字符通用编码而设计的。UTF-8 和 UTF-16 是这种规范的一种实现,此编码不兼容 ISO8859-1 编码。Java 内部采用此编码。UTF:UTF 编码兼容了 ISO8859-1 编码,同时也可以用来表示所有的语言字符,不过 UTF 编码是不定长编码,每一个字符的长度为 1~6 个字节不等。一般在中文网页中使用此编码,可以节省空间。
在程序中如果处理不好字符编码,就有可能出现乱码问题。例如现在本机的默认编码是 GBK,但在程序中使用了 ISO8859-1 编码,则就会出现字符的乱码问题。就像两个人交谈,一个人说中文,另外一个人说英语,语言不同就无法沟通。为了避免产生乱码,程序编码应与本地的默认编码保持一致。
本地的默认编码可以使用 System 类查看。Java 中 System 类可以取得与系统有关的信息,所以直接使用此类可以找到系统的默认编码。方法如下所示:
public static Properties getProperty()
查看 JVM 的默认编码,代码如下:
public static void main(String[] args) {// 获取当前系统编码System.out.println("系统默认编码:" + System.getProperty("file.encoding"));
}
运行结果如下:
系统默认编码:GBK
可以看出,现在操作系统的默认编码是 GBK。
示例乱码的产生。现在本地的默认编码是 GBK,下面通过 ISO8859-1 编码对文字进行编码转换。如果要实现编码的转换可以使用 String 类中的 getBytes(String charset) 方法,此方法可以设置指定的编码,该方法的格式如下:
public byte[] getBytes(String charset);
示例代码如下:
public class Test {public static void main(String[] args) throws Exception {File f = new File("D:" + File.separator + "test.txt");// 实例化输出流OutputStream out = new FileOutputStream(f);// 指定ISO8859-1编码byte b[] = "百度搜索引擎!".getBytes("ISO8859-1");// 保存转码之后的数据out.write(b);// 关闭输出流out.close();}
}
运行结果如下:
因为编码不一致,所以在保存时出现了乱码。在 Java 的开发中,乱码是一个比较常见的问题,乱码的产生就有一个原因,即输出内容的编码与接收内容的编码不一致。
Java字符编码介绍相关推荐
- 【JAVA编码专题】 JAVA字符编码系列三:Java应用中的编码问题
这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...
- 【JAVA编码】 JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换
http://blog.csdn.net/qinysong/article/details/1179489 这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记 ...
- Java字符编码知识简介
1.基本信息 摘要:在Java应用程序特别是Web应用中,经常遇到字符的编码问题.为了防止出现乱码,首先需要了解字符编码的基本概念以及Java是如何处理字符编码的,这样就可以有目的地在输入/输出环节中 ...
- 【JAVA编码专题】JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础
这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...
- java字符编码方式总结
java字符编码方式总结一.概要在JAVA应用程序特别是基于WEB的程序中,经常遇到字符的编码问题.为了防止出现乱码,首先需要了解JAVA是如何处理字符的,这样就可以有目的地在输入/输出环节中增加必要 ...
- Java——字符编码详细解释
目录 一.引言 二.基础知识介绍 三.java中的编码问题 1.字符转内存 2.编码转换,内存转字符 四.总结 一.引言 字符编码一直是萦绕在心头的痛,精华其实在如何编码上,但是由于平台.编码错乱.各 ...
- 关于JAVA字符编码:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换
出处: https://www.cnblogs.com/haimishasha/p/6117968.html 目录 1.1. ISO-8859-1 通常叫做Latin-1 1.2. GB2312/GB ...
- java字符编码详解_java字符编码详解
1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" ...
- java字符编码采用_JAVA字符编码三:Java应用中的编码问题
1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" ...
最新文章
- Glide和Govendor安装和使用
- android Adapter
- 在ASP.NET MVC中进行排序
- 采集文件到kafka
- 查看coo_matrix的shape
- Caffe常用层参数介绍
- python变量域名_想尝试使用python进行域名分析,可是没有接触过python,想请教请教。...
- Bash命令的学习笔记(legacy)
- a jquery 标签点击不跳转_jquery怎么让a标签不跳转?
- cad2022新功能介绍(autocad2022简体中文版)
- 快乐之道:游戏设计的黄金法则
- 数学建模——摘要写作
- PC版微信,公众号文章图片无法加载,解决方法
- 【shareX】自定义图片上传-基于tu.my最新版API
- 倒酒(拓展欧几里得)
- 项目开发——课程表查询APP
- ROS中执行roslaunch后,显示功能包不存在的解决方法
- 2013最新申请百度贴吧吧主的方法和规则
- 【SLAM学习】(二)相机原理
- Git之新建分支命令
热门文章
- mysql默认字符集和排序_MySQL字符集和排序规则
- 腾讯视频如何编辑自我介绍
- @JsonProperty注解解析
- 面试让HR都能听懂的MySQL锁机制,欢声笑语中搞懂MySQL锁
- 关于比较器Comparator排序时间的问题
- 抓包工具,知道手机app上面使用的接口是哪个
- 关于request.getRequestDispatcher()的两个方法
- 增量更新同步_OneDrive增量更新功能正式推出 仅同步文件更改部分降低网络占用...
- 不删除旧版本java_Linux 卸载旧版jdk 并安装新版jdk(转)
- mac os11以下安装Xcode