您现在的位置是:主页 > news > 南京网站建设案例/建站系统cms

南京网站建设案例/建站系统cms

admin2025/6/19 4:12:22news

简介南京网站建设案例,建站系统cms,网络公司网站建设,企业网站营销推广方案Java的中英文编码和解码问题 编码: 即将字符变成二进制数,然而二进制在高级预语言中用字节表示。所以编码可以理解成将字符转换成字节。 比如在民国时期,我们的身份是地下党,现在需要传一份秘密情报给我党,但是肯定不…

南京网站建设案例,建站系统cms,网络公司网站建设,企业网站营销推广方案Java的中英文编码和解码问题 编码: 即将字符变成二进制数,然而二进制在高级预语言中用字节表示。所以编码可以理解成将字符转换成字节。 比如在民国时期,我们的身份是地下党,现在需要传一份秘密情报给我党,但是肯定不…

Java的中英文编码和解码问题

编码: 即将字符变成二进制数,然而二进制在高级预语言中用字节表示。所以编码可以理解成将字符转换成字节。
比如在民国时期,我们的身份是地下党,现在需要传一份秘密情报给我党,但是肯定不能用明文的方式传,因为大家都认识,所以我们我党早就定义了一种规则,比如 国民党 对应了 分别对应ABC三个字符,所以我们将国民党表示成ABC。那么这个将国民党用ABC表示的过程就是编码。 同理,我们将字符表示成字节也称为编码。
解码: 解码是编码的逆过程,即根据对应的编码规则(比如UTF-8, ISO-8859-1等)将字节转成对应的字符。

1. Java的英文编码解码问题

据目前测试所知,英文的编码解码在java中并没有什么区别,用UTF-8编码的英文,用ISO-8859-1能解码出来。

2. Java的中文编码解码问题

据目前测试所知,只有将中文编码为UTF-8, 并且按UTF-8解码才能正常显示。按照ISO-8859-1编码和按照ISO-8859-1解码都不能正常显示。

3. 测试代码

package org.jinyuxin.a2019070101;import java.io.UnsupportedEncodingException;
import org.junit.jupiter.api.Test;public class TestEncodeAndDecode {@Testpublic void testEncodeAndDecode() {String testStr = "ABC中文";//底层默认按utf-8编码byte[] strByte = testStr.getBytes();try {//按ISO-8859-1解码testStr = new String(strByte, "ISO-8859-1");System.out.println("按默认方式(UTF-8)编码,按ISO-8859-1解码后的字符串是:" + testStr);} catch (UnsupportedEncodingException e) {e.printStackTrace();}}@Testpublic void testEncodeAndDecode1() {String testStr = "ABC中文";//底层默认按utf-8编码byte[] strByte = testStr.getBytes();//默认按utf-8解码testStr = new String(strByte);System.out.println("按默认方式(UTF-8)编码,默认方式(UTF-8)解码后的字符串是:" + testStr);}@Testpublic void testEncodeAndDecode2() {String testStr = "ABC中文";//底层默认按utf-8编码byte[] strByte = testStr.getBytes();//指定按utf-8可以解码,说明底层是按这个规则编码的try {testStr = new String(strByte, "utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}System.out.println("按默认方式(UTF-8)编码,按UTF-8解码后的字符串是:" + testStr);}@Testpublic void testEncodeAndDecode3() {String testStr = "ABC中文";//按ISO-8859-1编码byte[] strByte = new byte[0];try {strByte = testStr.getBytes("ISO-8859-1");} catch (UnsupportedEncodingException e) {e.printStackTrace();}//默认按utf-8解码testStr = new String(strByte);System.out.println("按ISO-8859-1编码,按默认方式(UTF-8)解码后的字符串是:" + testStr);}@Testpublic void testEncodeAndDecode4() {String testStr = "ABC中文";//按ISO-8859-1编码byte[] strByte = new byte[0];try {strByte = testStr.getBytes("ISO-8859-1");} catch (UnsupportedEncodingException e) {e.printStackTrace();}//默认按ISO-8859-1解码try {testStr = new String(strByte, "ISO-8859-1");} catch (UnsupportedEncodingException e) {e.printStackTrace();}System.out.println("按ISO-8859-1编码,按ISO-8859-1解码后的字符串是:" + testStr);}}

4. 测试结果

在这里插入图片描述