Java 从Unicode转换为CP1252

Java 从Unicode转换为CP1252,java,unicode,cp1252,Java,Unicode,Cp1252,我正在读一个JAVA加密文件,里面有许多不规则字符。问题是我试图对其进行解码,但是解密算法是使用CP1252编码实现的,而不是本机Java Unicode 基本上,我所做的是从这个文件中读取字节,并将它们保存到char[]中。我之所以不使用字节数组,是因为它们的值可以是无符号的,所以我想确保不会因此而丢失数据 无论如何,我的问题是,有没有一种方法可以将Unicode编码转换为CP1252编码,而不将数据转换为字节 我需要的一个例子就是这个 在CP1252中:€=128的值(我想要这个) 而在UN

我正在读一个JAVA加密文件,里面有许多不规则字符。问题是我试图对其进行解码,但是解密算法是使用CP1252编码实现的,而不是本机Java Unicode

基本上,我所做的是从这个文件中读取字节,并将它们保存到char[]中。我之所以不使用字节数组,是因为它们的值可以是无符号的,所以我想确保不会因此而丢失数据

无论如何,我的问题是,有没有一种方法可以将Unicode编码转换为CP1252编码,而不将数据转换为字节

我需要的一个例子就是这个

在CP1252中:€=128的值(我想要这个)

而在UNICODE中:€=8364的值(我在这里读到)


如果我使用字节转换它,该值将不会保持不变,这就是我使用char[]的原因。

您需要使用字节。使用字节不会破坏数据;已签名/未签名只是一个解释问题。加密文件真的包含字符吗?确定不是二进制数据吗?如果它是二进制的,你不能把它当作文本。@SLaks,但是如果值不一样,字节最大值是127,而值是128,它们怎么可能是相同的。@bzlm,我怎么知道它是否是二进制数据?如果是,我该如何治疗?此外,对于我目前正在做的工作,它一直在为Unicode和CP1252值相等的字符工作,例如0-127如果您还不了解这一点,您就没有必要开发加密。安全是很难做到的。您应该使用现有的、经过验证的实现。