且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

字符编码|学习笔记

更新时间:2022-08-22 14:20:02

开发者学堂课程【Java 高级编程字符编码】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/20/detail/320


字符编码


内容简介


一、 列出本机属性

二、 编写程序

三、 强制性设置编码

 

一、 列出本机属性

在计算机的世界里面,只认 0、1 的数据,如果要想描述一些文字的编码,就需要对这些二进制的数据进行组合,所以才有了现在可以看见的中文。

但是在进行编码的时候,如果要想正确解释出内容,则一定需要有解码,所以编码和解码肯定要采用同一标准,如果不统一的时候,就会出现乱码。

所以编码的统一是解决出现乱码的唯一途径。那么在实际的开发之中,对于常用的编码,有如下几种:

1、GBK/GB2312 国标编码,可以描述中文信息,其中 GB2312 只描述简体中文,而 GBK 包含有简体中文与繁体中文。

 

2、ISO8859_1 国际通用编码,可以描述所有文字信息,但如果处理不当,也会出现乱码。

3、Unicode 编码采用 16 进制的方式存储,可以描述所有的文字信息。其有一个最大的缺点就是大。

4、UTF 编码象形文字部分使用16进制编码,而普通的字母采用的是 ISO8859-1 编码,它的优势在于适合于快速的传输,节约带宽,这也就成为了在开发之中首选的编码。存在 UTF16 和 UTF_8,其中主要使用 utf-8 编码。

 

如果要想知道当前系统中支持的编码规则,则可以使用如下代码列出全部的本机属性。

 

范例:列出本机属性

 package cn.mldn.demo;

public class JavaAPIDemo {

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

System.getProperties().list(System.out);

}

}

 

 

以上信息都属于本机的操作属性,其中包括文件路径分割符、文件默认编码方式,也就是说如果现在什么都不设置,则采用的编码就是 Utf-8。

 

二、 编写程序

范例:编写程序

package cn.mldn.demo;

public class JavaAPIDemo {

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

 import java.io.FileOutputStream;

 import java.io.OutputStream;

public class JavaAPIDemo {

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

OutputStream output = new FileOutputStream("D:" + File.separato

output.write(”***万y"RetB)~~

 

此时没有设置编码,代码运行结果还是正常编码。此时为默认的处理操作,所以可以正常进行显示,不设置编码的时候,就将采用默认的编码方式进行。

 

三.强制性设置编码

范例:强制性设置编码

 import java.io.File;

import java.io.FileoutputStream;

 import java.io.OutputStream;

public class JavaAPIDemo {

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

OutputStream output = new FileOutputStream("D:" + File.separatoroutput.write(“***万岁".getBytes("UTF-s"));

Ioutput.close();

 

代码仍然是正常执行。因为强制设置的编码也还是默认编码,但如果设置其他编码,就将会出现乱码。

getByte(“ISO8859-1”));

 

项目中出现的乱码问题,就是编码和解码标准不统一,而***的解决乱码的方式,所有的编码都用 Utf-8。