2014-10-16 45 views
-2

我有字節數組,我要轉換爲ascii string.but我不知道它是否是ASCII, 我不知道它是否是正確的格式,我使用字節數組轉換爲ASCII字符串是亂碼

org.apache.commons.codec.binary.StringUtils.newStringUsAscii (driveCodeByte); 

但轉換的字符串是亂碼如下圖,所以我能做些什麼來轉換爲正確的格式?

即使我不確定它是ascii或其他編碼格式。

enter image description here

+3

什麼是「亂碼」?我們不知道原始數據是什麼,或者您期望的輸出。如果你想提供更多的上下文以及樣本輸入數據和期望的輸出數據,這將非常有幫助。 – 2014-10-16 10:57:45

+0

我真的不知道輸出內容,我只知道字節數組應該轉換爲ASCII字符串,但現在我的轉換是不正確的,因爲它是亂碼 – 2014-10-17 01:26:31

+0

我強烈懷疑它是*非* ASCII文本,那麼你不應該'實際上將其轉換爲ASCII。如果你不知道*它最初是文字,你不應該假設它是。你說你「不知道輸出內容」 - 當然你有一些想法是什麼信息。如果你不這樣做,你爲什麼要使用它? – 2014-10-17 05:42:07

回答

2

要將byte[]轉換爲String和轉換編碼,你不需要外部框架。

  • 使用String original = new String(myByteArray, myOriginalEncoding)從您的byte[]給出的預期編碼得到String
  • 然後,重新初始化一個新String轉換爲取其編碼(這裏ASCII):String converted = new String(original.getBytes(myOriginalEncoding), "Cp1252")

注意

必須知道你原來String的編碼與解釋,即UTF-8,ISO Latin 1等。

+1

'Cpp1252' ...你的意思是'Cp1252'? – Tom 2014-10-16 11:16:13

+0

@Tom哎呀!固定。感謝您的注意。 – Mena 2014-10-16 11:48:23

+0

但我不知道編碼,我嘗試每一種編碼,但它仍然是亂碼 – 2014-10-17 01:41:50