日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

1.3 字符编码介绍

發(fā)布時(shí)間:2025/3/20 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.3 字符编码介绍 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

計(jì)算機(jī)中,任何的文字都是以指定的編碼方式存在的,在 Java 程序的開發(fā)中最常見的是 ISO8859-1GBK/GB2312UnicodeUTF 編碼

Java 中常見編碼說明如下:

  • ISO8859-1:屬于單字節(jié)編碼,最多只能表示 0~255 的字符范圍。
  • GBK/GB2312:中文的國(guó)標(biāo)編碼,用來表示漢字,屬于雙字節(jié)編碼。GBK 可以表示簡(jiǎn)體中文和繁體中文,而 GB2312只能表示簡(jiǎn)體中文。GBK 兼容 GB2312。
  • Unicode:是一種編碼規(guī)范,是為解決全球字符通用編碼而設(shè)計(jì)的。UTF-8 和 UTF-16 是這種規(guī)范的一種實(shí)現(xiàn),此編碼不兼容ISO8859-1 編碼。Java 內(nèi)部采用此編碼。
  • UTF:UTF 編碼兼容了 ISO8859-1 編碼,同時(shí)也可以用來表示所有的語言字符,不過 UTF 編碼是不定長(zhǎng)編碼,每一個(gè)字符的長(zhǎng)度為1~6 個(gè)字節(jié)不等。一般在中文網(wǎng)頁中使用此編碼,可以節(jié)省空間。

在程序中如果處理不好字符編碼,就有可能出現(xiàn)亂碼問題。例如現(xiàn)在本機(jī)的默認(rèn)編碼是 GBK,但在程序中使用了 ISO8859-1 編碼,則就會(huì)出現(xiàn)字符的亂碼問題。就像兩個(gè)人交談,一個(gè)人說中文,另外一個(gè)人說英語,語言不同就無法溝通。為了避免產(chǎn)生亂碼,程序編碼應(yīng)與本地的默認(rèn)編碼保持一致。

本地的默認(rèn)編碼可以使用 System 類查看。Java 中 System 類可以取得與系統(tǒng)有關(guān)的信息,所以直接使用此類可以找到系統(tǒng)的默認(rèn)編碼。方法如下所示:

public static Properties getProperty()

使用上述方法可以查看 JVM 的默認(rèn)編碼,代碼如下:

public static void main(String[] args) {// 獲取當(dāng)前系統(tǒng)編碼System.out.println("系統(tǒng)默認(rèn)編碼:" + System.getProperty("file.encoding")); }

運(yùn)行結(jié)果如下:

系統(tǒng)默認(rèn)編碼:GBK

可以看出,現(xiàn)在操作系統(tǒng)的默認(rèn)編碼是 GBK。

下面通過一個(gè)示例講解亂碼的產(chǎn)生。現(xiàn)在本地的默認(rèn)編碼是 GBK,下面通過 ISO8859-1 編碼對(duì)文字進(jìn)行編碼轉(zhuǎn)換。如果要實(shí)現(xiàn)編碼的轉(zhuǎn)換可以使用 String 類中的 getBytes(String charset) 方法,此方法可以設(shè)置指定的編碼,該方法的格式如下:

public byte[] getBytes(String charset);

示例代碼如下:

import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream;public class Test {public static void main(String[] args){File f=new File("C:"+File.separator+"test.txt");try {//實(shí)例化輸出流OutputStream out=new FileOutputStream(f);//指定ISO8859-1編碼byte[] b="秀兒,我是你爸爸!".getBytes("ISO8859-1");//保存轉(zhuǎn)碼之后的數(shù)據(jù)out.write(b);//關(guān)閉輸出流out.close();} catch (Exception e) {e.printStackTrace();}}}

運(yùn)行結(jié)果如下:

可以發(fā)現(xiàn),因?yàn)榫幋a不一致,所以在保存時(shí)出現(xiàn)了亂碼。在 Java 的開發(fā)中,亂碼是一個(gè)比較常見的問題,亂碼的產(chǎn)生就有一個(gè)原因,即輸出內(nèi)容的編碼與接收內(nèi)容的編碼不一致。

總結(jié)

以上是生活随笔為你收集整理的1.3 字符编码介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。