用于Java base 64编码的Ruby base 64解码
我有一个使用java编码的字符串用于Java base 64编码的Ruby base 64解码,java,ruby,base64,Java,Ruby,Base64,我有一个使用java编码的字符串 data = new String(Base64.getEncoder().encode(encVal), StandardCharsets.UTF_8); 我正在接收这个编码数据作为API响应。我想用ruby解码这个。我正在使用 Base64.strict_decode64(data) 为了这个。但这是行不通的。有人能帮我吗?您的Java代码是正确的: byte[] encVal = "Hello World".getBytes(); String dat
data = new String(Base64.getEncoder().encode(encVal), StandardCharsets.UTF_8);
我正在接收这个编码数据作为API响应。我想用ruby解码这个。我正在使用
Base64.strict_decode64(data)
为了这个。但这是行不通的。有人能帮我吗?您的Java代码是正确的:
byte[] encVal = "Hello World".getBytes();
String data = new String(Base64.getEncoder().encode(encVal), StandardCharsets.UTF_8);
System.out.println(data); // SGVsbG8gV29ybGQ=
SGVsbG8gV29ybGQ=
使用多种工具正确解码,例如
您正在观察垃圾字符解码您的值,很可能是由于创建
字节[]
时出错。在创建字节[]
时,可能必须指定正确的编码您的Java代码是正确的:
byte[] encVal = "Hello World".getBytes();
String data = new String(Base64.getEncoder().encode(encVal), StandardCharsets.UTF_8);
System.out.println(data); // SGVsbG8gV29ybGQ=
SGVsbG8gV29ybGQ=
使用多种工具正确解码,例如
您正在观察垃圾字符解码您的值,很可能是由于创建
字节[]
时出错。在创建byte[]
时,您可能必须指定正确的编码。如果您包含这样一个base64编码字符串的示例,这会有所帮助,这样Ruby回答者就不必为了测试一个解决方案而乱用Java。此外,这个问题与“Ko7USRGWFMQBW3RXI6EQYJ72HNPMCZFAQBJND1WPLUS1NRKUELOPYSZ9Z5YYKPLUSQpCGSTFKUHJQ20F4R9H5U5EXU1F6DHNAKTEAX9HBIIEQYGRDBUDM3FTRVUKETHICWFD/EGO6DYQRH55YJCZGJMK2TKWWU5DKPS4DOJF4DJKB1YX/I6BMI6BYWBXIJ9H9H9H5F4BYBYYKKKJKKKKKKKKKKKKBYBYBYBYBYBYBYBYBYBYBYXXAJT/RYBYBYBYBYBYBYKJK,要求“base64”;Base64.decode64(数据)
应该可以,但我正在清除垃圾,所以我只能希望你把垃圾放进去。Strict decoder抱怨长度不能被4整除,如果您用=
右键填充它,它将与decode64
做相同的事情Strict\u decode64
也将为尾部换行引起ArgumentError
。如果您想继续使用strict\u decode64
而不是常规的decode64
,可以尝试Base64.strict\u decode64(data.chomp)
。如果您包含这样一个Base64编码字符串的示例,那么Ruby回答者就不必为了测试一个解决方案而乱用Java。此外,这个问题与“Ko7USRGWFMQBW3RXI6EQYJ72HNPMCZFAQBJND1WPLUS1NRKUELOPYSZ9Z5YYKPLUSQpCGSTFKUHJQ20F4R9H5U5EXU1F6DHNAKTEAX9HBIIEQYGRDBUDM3FTRVUKETHICWFD/EGO6DYQRH55YJCZGJMK2TKWWU5DKPS4DOJF4DJKB1YX/I6BMI6BYWBXIJ9H9H9H5F4BYBYYKKKJKKKKKKKKKKKKBYBYBYBYBYBYBYBYBYBYBYXXAJT/RYBYBYBYBYBYBYKJK,要求“base64”;Base64.decode64(数据)
应该可以,但我正在清除垃圾,所以我只能希望你把垃圾放进去。Strict decoder抱怨长度不能被4整除,如果您用=
右键填充它,它将与decode64
做相同的事情Strict\u decode64
也将为尾部换行引起ArgumentError
。如果您想继续使用strict\u decode64
而不是常规的decode64
,可以尝试使用Base64.strict\u decode64(data.chomp)
。