日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1.3 字符编码介绍

發布時間:2025/3/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.3 字符编码介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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);

示例代碼如下:

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 {//實例化輸出流OutputStream out=new FileOutputStream(f);//指定ISO8859-1編碼byte[] b="秀兒,我是你爸爸!".getBytes("ISO8859-1");//保存轉碼之后的數據out.write(b);//關閉輸出流out.close();} catch (Exception e) {e.printStackTrace();}}}

運行結果如下:

可以發現,因為編碼不一致,所以在保存時出現了亂碼。在 Java 的開發中,亂碼是一個比較常見的問題,亂碼的產生就有一個原因,即輸出內容的編碼與接收內容的編碼不一致。

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。