Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于Java base 64编码的Ruby base 64解码_Java_Ruby_Base64 - Fatal编程技术网

用于Java base 64编码的Ruby base 64解码

用于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

我有一个使用java编码的字符串

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)