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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java byte 编码_java字节编码总结

發布時間:2023/12/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java byte 编码_java字节编码总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 編碼簡介

1.1 ASCII/ISO-8859-1/Latin_1

單字節編碼,可以表示256個不同的字符(英文字符、標點符號等)。

1.2 GB2312/GBK

雙字節編碼(不定長,英文時只用一個字節),兼容ISO-8859-1編碼,即當其為ISO-8859-1時,只需用一個字節來表示,并且其值完全一樣。GB2312只能表示簡體字,GBK可以同時表示繁體字和簡體字,并且兼容GB2312。

1.3 Unicode

定長雙字節編碼,不兼容任何編碼,但可通過轉換,表示任何編碼。Java內部使用Unicode來進行操作。不過Unicode容易占用更多的空間,因為對于英文字母,Unicode也需要兩個字節來表示。

1.4 UTF(UCS Transformation Format)

不定長編碼,每一個字符的長度從1-6個字節不等,一般來講,英文字母都是用一個字節表示,而漢字使用三個字節。其實UTF就是Unicode編碼的傳輸和存儲的格式。

2 Java對字符的處理

2.1 getBytes(charset)

將字符串所表示的字符按照charset編碼,并以字節方式表示。注意字符串在java內存中總是按unicode編碼存儲的。比如"中文",存儲為"4e2d 6587",如果charset為"gbk",則被編碼為"d6d0 cec4",然后返回字節"d6 d0 ce c4"。如果charset為"utf8"則最后是"e4 b8 ad e6 96 87"。如果是"iso8859-1",則由于無法編碼,最后返回 "3f 3f"(兩個問號)。(應先考慮字符串所表示的字符編碼,然后確定需轉換的編碼與現在字符串的編碼是否兼容)

2.2 new String(charset)

將字節數組按照charset編碼進行組合識別,最后轉換為unicode存儲。就是按照不同的編碼,取不同的字節數,然后轉換成unicode。

3 Java中各類型操作的字符處理

3.1 各類型處理

3.2 文件讀寫

外部數據如文件經過讀寫和轉換兩個步驟,轉為jvm所使用字符。

1. InputStream/OutputStream用于讀寫原始外部數據,Reader/Writer執行讀寫和轉換兩個步驟,處理漢字不合適,應該首選使用Reader/Writer。

2. FileReader/FileWriter使用JVM當前編碼讀寫文件.如果有其它編碼格式,使用InputStreamReader/OutputStreamWriter

3. PrintStream有點特殊,它自動使用jvm缺省編碼進行轉換。

3.3 讀取.properties文件

.propeties文件由Properties類以iso8859-1編碼讀取,因此不能在其中直接寫漢字。

1. 使用JDK 的native2ascii工具轉換漢字為\uXXXX格式。命令行:native2ascii –encoding GBK inputfile outputfile

2. 對讀入的字符串進行轉換:byte[] b = str.getBytest(“ISO-8859-1”); str = new String(b,”GBK”);

3.4 讀取XML文件

XML文件讀寫同于文件讀寫,但應注意確保XML頭中聲明如 xml version=”1.0” encoding=”gb2312”?>與文件編碼保持一致。

3.5 WEB/Servlet/JSP

1. 對于JSP,確定頭部加上 這樣的標簽。

2. 對于Servlet,確定 設置setContentType (“text/html; charset=gbk”),以上兩條用于使得輸出漢字沒有問題。

3. 為輸出HTML head中加一個 ,讓瀏覽器正確確定HTML編碼。

4. 為Web應用加一個Filter,確保每個Request明確調用setCharacterEncoding方法,讓輸入漢字能夠正確解析。

總結

以上是生活随笔為你收集整理的java byte 编码_java字节编码总结的全部內容,希望文章能夠幫你解決所遇到的問題。

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