我有一個需求,我必須在輸出流上寫入一些文本,並使用輸入流將文本讀回其他地方。字節到字符串| Java
現在編寫輸出我使用string.getByte()將其轉換爲字節數組。現在讀取時,字符串使用構造函數String(byte [])形成。
話雖如此,這裏的問題是,閱讀字符串是不是我希望看到的。儘管所有的字母數字字符都是按原樣讀取的,但對於寫入的字符串中的其他特殊字符,其ASCII值將在打印符號前加上%符號。
即使像的字符串轉換爲字節數組,然後重構該字符串,像這樣
private stringToByte(){
String data="\"X=Y;Z=A;B=C;\""
byte[] byteArray=data.getByte();
String readData=new String(byteArray);
System.out.println("data:"+readData);
}
最平凡的是產生相同的結果。 現在,這是越來越在此之後產生的字符串看起來像
data:%22X=Y%3BZ=A%3BB=C%3B%22
現在我的初步設想是,編碼系統正在使用默認字符集完成的,所以它應該被編碼。但即使在同一臺JVM中的同一臺機器上,這種行爲也很明顯。
我試着打外出時,通過使用
String readData=new String(byteArray,"diffent character set name");
但是,因爲它應該有線索的方式,它使情況更加惡化,因爲我是隨機嘗試不同的字符集名稱。
希望你能用它剎住我的惡作劇。你能指出我在這個方案中要去哪裏愚蠢嗎?
許多許多在此先感謝! :)
非常感謝Durandal!絕對有很多事情在發生,我幾乎失明瞭,看不到他們!字符串使用URLEncoder.encode(data)進行編碼,我所要做的就是使用URLDecoder.decode(data)來取回我的原始數據。 – mawia 2012-03-14 13:21:41