2017-01-28 174 views
0

好吧,讓我們說我讀取一個文件並獲取它的所有字節,byte []。Java - 從字符集編碼轉換爲字節字符串的新字符串

byte[] fileBytes = whatever; 

(讓我們假裝什麼是我讀字節)

現在讓我們說我做了一個串出它與操作系統的默認字符集,

String s = new String(fileBytes, Charset.defaultCharset()); 

在我的情況下,操作系統的默認charset是windows-1252。

由於我們通過默認字符集讀取文件,因此s.getBytes()與fileBytes不同。

我們怎麼能扭轉字符串的知道默認字符集回到原來的fileBytes?

我感謝所有幫助,謝謝! :)

+0

反轉字節數組和使用任何你想要的編碼轉換爲字符串會有什麼問題嗎? –

+0

可能重複[如何將Java字符串轉換爲字節\ [\]?](http://stackoverflow.com/questions/18571223/how-to-convert-java-string-into-byte) – nullpointer

+0

這是一個endian問題? – Bohemian

回答

0

根據我,你可以做它反之亦然。

byte[] fileBytes = whatever; 
String s = new String(fileBytes, Charset.defaultCharset()); 

您可以通過執行以下操作來反轉它。

byte[] reversedFileBytes = s.getBytes(Charset.defaultCharset());