導航:首頁 > 編程語言 > javaunicodetoutf8

javaunicodetoutf8

發布時間:2023-02-07 17:48:29

1. java怎麼把把字元轉成utf-8

java不同編碼之間進行轉換,都需要使用unicode作為中轉。
以utf-8轉gbk為例,示例代碼如下:
String t = "這是一個字元串aaa111";
String utf8 = new String(t.getBytes( "UTF-8"));
System.out.println(utf8);
String unicode = new String(utf8.getBytes(),"UTF-8");
System.out.println(unicode);
String gbk = new String(unicode.getBytes("GBK"));
System.out.println(gbk);

2. java jsonObject中unicode 轉 utf-8問題

java 中有轉義字元的概念:


  1. 八進制轉義序列: + 1到3位5數字;范圍'00'~'377'

  2. :空字元

  3. 2.Unicode轉義字元:u + 四個十六進制數字;0~65535

  4. u0000:空字元

  5. 3.特殊字元:就3個

  6. ":雙引號

  7. ':單引號

  8. \:反斜線

  9. 4.控制字元:5個

' 單引號字元


\ 反斜杠字元


回車


換行


f 走紙換頁


橫向跳格


 退格

3. java中 unicode編碼轉換成UTF-8,請前輩指點,謝謝

看來你手裡有這個代碼嘍。
我從來沒仔細研究過具體如何轉換的,只是知道,如果java里String str = 什麼什麼; 能夠取到str值了,那麼此時的str一定為unicode了,轉換的時候一般用在輸出上。

&是按位與,就是每一個二進制位分別對應進行與操作。
|是按位或,就是每一個二進制位分別對應進行或操作。

4. java中GBK編碼格式轉成UTF8,用一段方法實現怎麼做

首先明確幾點:
unicode是一種「編碼」,所謂編碼就是一個編號(數字)到字元的一種映射關系,就僅僅是一種一對一的映射而已,可以理解成一個很大的對應表格
GBK、UTF-8是一種「編碼格式」,是用來序列化或存儲1中提到的那個「編號(數字)」的一種「格式」;GBK和UTF-8都是用來序列化或存儲unicode編碼的數據的,但是分別是2種不同的格式; 他們倆除了格式不一樣之外,他們所關心的unicode編碼范圍也不一樣,utf-8考慮了很多種不同國家的字元,涵蓋整個unicode碼表,所以其存儲一個字元的編碼的時候,使用的位元組長度也從1位元組到4位元組不等;而GBK只考慮中文——在unicode中的一小部分——的字元,的編碼,所以它算好了只要2個位元組就能涵蓋到絕大多數常用中文(2個位元組能表示6w多種字元),所以它存儲一個字元的時候,所用的位元組長度是固定的;
上述2個概念不懂的請馬上google,下面不再贅述;我下面說說這個問題本身...的問題在哪裡
首先java的string使用的編碼是unicode,但是,當string存在於內存中時(也就是當程序運行時、你在代碼中用string類型的引用對它進行操作時、也就是string沒有被存在文件中且也沒有在網路中傳輸(序列化)時),是「只有編碼而沒有編碼格式的」,所以java程序中的任何String對象,說它是gbk還是utf-8都是錯的,gbk和utf-8是編碼格式而不是編碼,String在內存中不需要「編碼格式」(記住編碼格式是在存文件或序列化的時候使用的), 它只是一個unicode的字元串而已
所以java裡面String是不帶編碼格式的,而String.toByteArray(charsetName)得到的byteArray是帶編碼格式的,格式就是你傳入的'charsetName',我們不妨把toByteArray的這個過程叫做「編碼」;另外,new String(byte[], charsetName)是把一個byte數組(帶編碼格式)以charsetName指定的編碼格式翻譯為一個不帶編碼格式的String對象,我們不妨把這個過程叫「解碼」
那麼根據我揣測提問者的意圖,可能有2種問法是他真正想問的:
第一,如何把一個被錯誤地當作是gbk格式存儲的utf-8格式的文件裡面讀出來的一段亂碼字元串還原回去(也就是說本來二進制數據是utf-8的,你用gbk來解碼它,得到的字元串是亂碼,現在想要還原回去)
第二種,如何把一個gbk文件轉化為utf-8文件
如果是第一種意圖那就:
public static void main(String... args) throws Throwable {
String errStr = "errStr";
System.out.println(recover(errStr));
}

public static String recover(String str) throws Throwable {
return new String(str.getBytes("GBK"), "UTF-8");
}
其中errStr就是亂碼字元串,按照相反的順序在編碼(用gbk)、解碼(用utf-8)回去,就能得到正確的字元串(其實不保證所有情況均能正確還原,只能說大部分都能,要看你在亂碼過程中是否有數據被丟失)

如果是第二種意圖,那就用InputStream以gbk格式將文件讀到內存里(表示為String),再將這個String以UTF-8編碼寫入目標文件里,具體請參考InputStream/OutputStream的api

5. java中unicode字元串轉化為utf8的方法

你試試這個構造方法
String(byte[] bytes, String charsetName)
String s = "флэш";
String s2 = new String(s.getBytes("原編碼方式"),"UTF-8");

閱讀全文

與javaunicodetoutf8相關的資料

熱點內容
php人像識別 瀏覽:169
mysqlphp緩存機制 瀏覽:207
量價王道指標附圖源碼 瀏覽:488
基於51單片機的指紋識別 瀏覽:803
oppoa系列怎麼解壓 瀏覽:603
程序員辭職養豬還值得學編程嗎 瀏覽:866
socket網路編程pdf 瀏覽:104
php函數隨機數字 瀏覽:415
申請杭州戶籍用什麼app 瀏覽:965
eda編譯實驗報告 瀏覽:347
app在哪裡可以下 瀏覽:784
linux防火牆埠號 瀏覽:546
思科模擬器雲與伺服器相連 瀏覽:254
ispf命令 瀏覽:403
考試app怎麼預約 瀏覽:902
數據前處理python 瀏覽:666
pr編譯影片錯誤是為什麼 瀏覽:815
python編譯嵌套的目錄 瀏覽:833
伺服器火災用什麼滅火器 瀏覽:940
tc的編譯設置 瀏覽:519