我在java和c#之间遇到base64问题,我从java urlconnection发送编码字符串到asp.net处理程序,我比较了两个字符串,一个是从字节数组中用java生成的字符串,另一个是在asp.net中首先解码并接收的字符串是相同的,但在解码后的c#中的字节数组等于java中的字节数组。
我正在使用新的sun.misc.BASE64Encoder()。encode(javabytearray);在java和System.Convert.FromBase64String(encodedstring);中在dotnet中。
来自Java:“ [0] [-24] [56] [1] [-56] [41] [-29] .........”
到dotnet:“ [0] [232] [56] [1] [200] [41] [227] .........”
相似:Encoding base64 in Java and decoding in C#
我不能在上面提出问题,因为它是一个问答网站,每次必须创建一个新问题时,都不能在另一个问题中提出一个问题。
非常感谢
最佳答案
byte
在C#中未签名,在Java中已签名。 Java byte
值-24
的位模式等于c#byte
值232
的位模式。因此,您的代码应该是正确的。如果您想验证这一点,请转换为将Java byte
值设置为int
,并将256
添加到负值。