我在java和c#之间遇到了base64问题,我从java urlconnection发送编码字符串到asp.net处理程序,我比较两个字符串,在java中从字节数组生成的字符串和在asp.net第一次解码中接收的字符串相同,但解码后,c# 中的字节数组与 java 中的字节数组不相等。
我使用新的 sun.misc.BASE64Encoder().encode(javabytearray);在 java 和 System.Convert.FromBase64String(encodedstring) 中;在点网中。
来自java:“[0] [-24] [56] [1] [-56] [41] [-29]......”
到点网:“[0][232][56][1][200][41][227]……”
相似的:在Java中编码base64并在C#中解码 https://stackoverflow.com/questions/3410203/encoding-base64-in-java-and-decoding-in-c
我不能在上面的问题中提出这个问题,因为它是一个问答网站,每次必须创建一个新问题时,不能在另一个问题中提出问题。
多谢
byte
在 C# 中是无符号的,在 Java 中是有符号的。 Java 的位模式byte
value -24
等于 c# 的位模式byte
value 232
。所以你的代码应该是正确的。如果您想验证这一点,请转换例如爪哇byte
价值观int
并添加256
到负值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)