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

我有UTF8编码的字符串,但我需要在cp1251中将参数发布到运行时进程。如何解码字符串或字节数组? 我需要像:.
bytesInCp1251 = encodeTo(stringInUtf8, "cp1251");
谢谢大家!这是我自己的解决方案:
OutputStreamWriter writer = new OutputStreamWriter(out, "cp1251");
writer.write(s);
    
已邀请:
Java中没有“UTF8编码的字符串”这样的东西。 Java字符串在内部使用UTF-16,但应该被视为没有特定编码的抽象。如果你有一个字符串,它已经被解码了。如果要对其进行编码,请使用
string.getBytes(encoding)
。如果原始数据是UTF-8,则必须在将该数据从字节转换为String时将其考虑在内。     
byte[] bytesInCp1251 = stringInUtf8.getBytes("cp1251");
    
这是解决方案!
OutputStreamWriter writer = new OutputStreamWriter(out, "cp1251");
writer.write(s);
    
为什么不做这样的事情(假设
stringInUtf8
是UTF-8字符串)?
String cp1251Str = new String(stringInUtf8.getBytes("UTF-8"), "cp1251");
    

要回复问题请先登录注册