在java中从1252编码到Unicode.NET等价物

在java中从1252编码到Unicode.NET等价物,java,.net,unicode,encoding,windows-1252,Java,.net,Unicode,Encoding,Windows 1252,我请求将.NETWeb服务移植到java。我需要找到用.NET编写的这段代码的等效java代码: byte[] b = ... // Some file binary data. byte[] encoded = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding(1252), System.Text.Encoding.Unicode, b); 提前谢谢 看看java中的。java中的Cp1252编码是windows 12

我请求将.NETWeb服务移植到java。我需要找到用.NET编写的这段代码的等效java代码:

byte[] b = ... // Some file binary data.
byte[] encoded = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding(1252), System.Text.Encoding.Unicode, b);

提前谢谢

看看java中的。java中的Cp1252编码是windows 1252的等效编码。

或UTF-8,用于典型用例。Nicola明确要求System.Text.encoding.Unicode,即UTF-16。是的,我尝试了新字符串(b,“Cp1252”)。getBytes(“UTF-16LE”);但不幸的是,它不起作用。字节[]包含一个PDF文件,我能看到的是,从.NET转换的字节和从java转换的字节在文件的开头是相同的(%PDF…),但一旦文件的二进制部分开始,许多字节就不同了。@Nicola:您不能对任意二进制数据(如PDF文档)进行字符集转换。只有当b包含Cp1252编码的文本时,它才会起作用。@jarnbjo:我想你是对的,可能我做错了,我会问一个新问题,详细解释我想实现的目标。谢谢
byte[] b = ...
byte[] encoded = new String(b, "Cp1252").getBytes("UTF-16");