Java字符转换

az4*_*dan 1 java string encoding

所以基本上我正在尝试将ISO-8859-2中的字符转换为windows-1250.不幸的是,java编码器/解码器类似乎都没有解决我的问题.

我现在正在做的是:

str = str.replace("?", new String(new char[]{241}));
Run Code Online (Sandbox Code Playgroud)

它实际上转换序列,但不转换为正确的字符.

-59,-124(ń)变成-61,-79,是不是应该成为241-24

Mic*_*rdt 5

想要将Java String从一种编码转换为另一种编码是根本错误的 - 字符串是字符的抽象,与编码无关(大多数情况下).

在Java中,编码用于在字节和字符串之间进行转换的配方.如果要从ISO-8859-2转换为windows-1250,则需要从字节开始,使用ISO-8859-2将它们转换为String,并使用windows-1250将其转换回字节.这可以使用InputStreamReader/Writernew String(bytes, encoding)和完成string.getBytes(encoding)