一尘不染

在Java中ISO-8859-1和UTF-8之间如何转换?

java

有谁知道如何将字符串从ISO-8859-1转换为UTF-8并重新转换为Java?

我从网络上获取一个字符串并将其保存在RMS(J2ME)中,但是我想保留特殊字符并从RMS中获取字符串,但要使用ISO-8859-1编码。我该怎么做呢?


阅读 505

收藏
2020-03-17

共1个答案

一尘不染

通常,你无法执行此操作。UTF-8能够编码任何Unicode代码点。ISO-8859-1只能处理其中的一小部分。因此,从ISO-8859-1转换为UTF-8没问题。如果发现不支持的字符,则从UTF-8退回到ISO-8859-1将导致“替换字符”( )出现在文本中。

转码文字:

byte[] latin1 = ...
byte[] utf8 = new String(latin1, "ISO-8859-1").getBytes("UTF-8");

要么

byte[] utf8 = ...
byte[] latin1 = new String(utf8, "UTF-8").getBytes("ISO-8859-1");

你可以使用较低级别的CharsetAPI 进行更多控制。例如,你可以在发现无法编码的字符时引发异常,或者将其他字符用于替换文本。

2020-03-17