将使用Latin-1代码页编码的UTF-8转换为iso-8859-1字节

时间:2015-02-11 03:05:47

标签: java utf-8 character-encoding iso-8859-1

这是漫长的一天。我不确定我是否忽略了某些东西,或者我的问题没有一个简单的答案。

这是我的情景:

  • 我将文本数据作为字节发送到不支持UTF-8编码的系统。
  • 它有自定义字符集,但我只需要符合ISO-8859-1 / Latin-1编码的字符。
  • 我有传入的UTF-8编码的字符串数据,它只使用ASCII和少量仅来自Latin-1代码页的外来字符。

在我尝试重新编码这些字符串时,我最终得到了'?'替换外部字符,第二个Unicode字节或两个正在发送的Unicode字节。

是否有一种简单的方法来获取使用2个字节的传入数据来描述这些Latin-1代码页字符并将它们编码为ISO-8859-1 Bytes?

1 个答案:

答案 0 :(得分:3)

在读者方面,您需要以下内容:

new InputStreamReader(underlyingInputStream, "UTF-8")

在作家方面:

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

然后你应该能够读取传入的UTF-8编码字符,并将它们写成ISO-8859-1编码字符。