我无法解码以base64格式提供的XML,字符串变量($("#myInput").keypress(function(event) {
if ( event.which == 13 ) {
var searchvalue = $(this).val();
apiCall();
}
});
function apiCall(){
$.getJSON("http://www.flickr.com/services/feeds/photos_public.gne?tags='"+searchvalue+"'&format=json&jsoncallback=?", function(data) {
$.each(data.items, function(index, element){
console.log(data.items);
});
}
);}
)显示某些内容不可读。
示例:
Ü-ÅïÎ#è-´ï®¹ïn÷ëÞ#èMÃÛmõØMôÛm´ë ##ë〜#ë#½èN»Ü=¶ãÞwà]#ßÍüß#ýØ= õÛm´ï〜øë^#ë#µè。# èN¹Ü=¶ïÞ¹ï
代码如下:
lv_string
答案 0 :(得分:4)
我过去也有这个问题。您可以使用以下
data:
lv_base64 type string,
lv_xstring type xstring,
lv_output type string.
* example base64 string
lv_base64 = 'PGh0bWw+PGhlYWQ+PHRpdGxlPlRpdGxlPC90aXRsZT48L2hlYWQ+PGJvZHk+PHA+SGVsbG8gV29ybGQ8L3A+PC9ib2R5PjwvaHRtbD4='.
* convert base64 to binary (xstring)
call function 'SCMS_BASE64_DECODE_STR'
exporting
input = lv_base64
importing
output = lv_xstring
exceptions
failed = 1
others = 2.
* use codepage conversion to convert xstring to string (UTF-8)
* catch possible conversion errors
try.
lv_output = cl_abap_codepage=>convert_from( source = lv_xstring ).
catch cx_parameter_invalid_range .
catch cx_sy_codepage_converter_init .
catch cx_sy_conversion_codepage .
catch cx_parameter_invalid_type .
endtry.
write lv_output.
结果是以下输出
<html><head><title>Title</title></head><body><p>Hello World</p></body></html>
您可以使用其他参数来控制转换,例如:
如果您希望使用其他代码页
如果要用特殊字符替换不可见的字符
如果您想忽略转换错误
lv_output = cl_abap_codepage=>convert_from(
source = lv_xstring
codepage = <your favourite codepage here>
replacement = <conversion char for not convertible chars>
ignore_cerr = <pass 'X' to ignore conversion errors>
).
答案 1 :(得分:0)
如果我们假设base64字符串包含UTF-8
编码的XML,则一个简短的解决方案是使用类DECODE_BASE64
的方法CL_HTTP_UTILITY
:
lv_string = cl_http_utility=>if_http_utility~decode_base64( xml_b64 ).
最小,完整和可验证的示例:
(请允许我重复使用@manuel_b的好例子)
DATA(xml_b64) = `PGh0bWw+PGhlYWQ+PHRpdGxlPlRpdGxlPC90aXRsZT48L2hlYWQ+`
&& `PGJvZHk+PHA+SGVsbG8gV29ybGQ8L3A+PC9ib2R5PjwvaHRtbD4=`.
DATA(lv_string) = cl_http_utility=>if_http_utility~decode_base64( xml_b64 ).
ASSERT lv_string = `<html><head><title>Title</title></head><body><p>Hello World</p></body></html>`.