Java:将UTF8字符串转换为另一种编码的字节数组

5

我有一个UTF8编码的字符串,但我需要将参数发送到使用cp1251的Runtime进程中。如何解码字符串或字节数组?

我需要像这样做:bytesInCp1251 = encodeTo(stringInUtf8, "cp1251");


感谢大家!这是我的解决方案:

OutputStreamWriter writer = new OutputStreamWriter(out, "cp1251");
writer.write(s);

可能是重复的问题:如何解析与Java不同编码的字符串? - Bozho
我的问题在那里没有答案。我需要“改变”编码。 - Pavel Vyazankin
可能是Java中的编码转换的重复问题。 - kamaci
3个回答

9
在Java中,不存在“UTF8编码的字符串”。Java字符串在内部使用UTF-16,但应被视为没有特定编码的抽象。如果您有一个字符串,它已经被解码了。如果您想对其进行编码,请使用string.getBytes(encoding)。如果您的原始数据是UTF-8,则在将该数据从字节转换为字符串时必须考虑这一点。

5
byte[] bytesInCp1251 = stringInUtf8.getBytes("cp1251");

1

这是解决方案!

OutputStreamWriter writer = new OutputStreamWriter(out, "cp1251");
writer.write(s);

1
你应该更新自己的答案并提供解决方案,而不是将其隐藏在这里。 - Shervin Asgari

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接