2015-02-11 18 views
0

這是漫長的一天。我不確定我是否忽略了某些事情,或者如果我的問題沒有簡單的答案。將使用Latin-1代碼頁編碼的UTF-8轉換爲iso-8859-1字節

這裏是我的情景:

  • 我發送文本數據字節到不支持UTF-8編碼的系統。
  • 它有一個自定義字符集,但我只需要匹配ISO-8859-1/Latin-1編碼的字符。
  • 我有傳入的UTF-8編碼的字符串數據,只使用ASCII和只有來自Latin-1代碼頁的少量外來字符。

在我試圖對這些字符串進行重新編碼時,我最終得到'?'替換爲外部字符,第二個Unicode字節或兩個Unicode字節發送。

是否有一種簡單的方法可以將這些傳入數據用2個字節來描述這些Latin-1代碼頁字符並將它們編碼爲ISO-8859-1字節?

+1

你到目前爲止嘗試過哪些代碼? – immibis 2015-02-11 03:13:16

回答

2

在讀者方面,你需要這樣的東西:

new InputStreamReader(underlyingInputStream, "UTF-8") 

在編劇方面:

new OutputStreamWriter(underlyingOutputStream, "ISO-8859-1") 

那麼你應該能夠讀取傳入UTF-8編碼的字符,並把它們寫作爲ISO-8859-1編碼的字符。