Windows-1251转换为UTF-8编码

4

我有一个使用Windows-1251编码表编码的字符代码。

如何将这个字符的编码转换成UTF-8编码表中的编码?

例如,我有一个字符 'А',在Windows-1251中的编码为192,在utf-8中的对应编码为1040。

我如何在Java中使用192这个编码数值初始化Character或char变量?

char c = (char)192; //如何指定编码方式?


1
所有ASCII字符,包括A在Window-1251、ISO-8859-1和UTF-8中都是相同的。只有大于127的字符是不同的。 - Peter Lawrey
你有代码点、字符或字符串吗?更多信息会有帮助。- 如果是字符串,你可以在从流/文件读取时定义CP-1251编码,在写入到流/文件时定义UTF-8编码。 - Thomas
1
我的原始任务是检查字符是否有效(可用于字符串)。我在Windows-1251代码表中拥有有效字符代码列表。有效字符可以设置为从到的范围(32-235)。我想将给定的字符与范围进行比较,但给定的字符是以UTF-8编码的。 - pe4enko
1个回答

8

要将一个使用一个字符编码的 byte[] 转换为另一个字符编码,可以执行以下操作

public static byte[] convertEncoding(byte[] bytes, String from, String to) {
    return new String(bytes, from).getBytes(to);
}

但是,如果您将输出的 byte[] 转换为字符串,则会得到错误的字符串。 - Konstantin Konopko

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