【转】ABAP BASE64编码与解码练习
一、功能描述
练习ABAP中的Base64编码/解码,以及字符编码转换
二、相关函数及类接口
1、SCMS_STRING_TO_XSTRING String 转 Xstring (按照指定字符编码)
2、SCMS_BASE64_ENCODE_STR Base64 编码
3、SCMS_BASE64_DECODE_STR Base64 解码
4、SCP_CODEPAGE_BY_EXTERNAL_NAME 获得Codepage
5、cl_abap_conv_in_ce Xstring转String (按照指定字符编码)
三、练习代码
*&---------------------------------------------------------------------*
*& Report ZQBTEST_15
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*REPORT zqbtest_15.PARAMETERS: p_instr TYPE string,p_code TYPE c LENGTH 128 DEFAULT 'GBK'.DATA: instr TYPE string,xstr TYPE xstring,encode_str TYPE string,charset TYPE string,mimetype(128) TYPE c.instr = p_instr.WRITE : / ' Instr:' ,instr.charset = p_code.CONCATENATE '"text/html; charset=' p_code '"' INTO mimetype.CALL FUNCTION 'SCMS_STRING_TO_XSTRING'EXPORTINGtext = instrmimetype = mimetypeIMPORTINGbuffer = xstrEXCEPTIONSfailed = 1OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.WRITE : / ' Xstr:' ,xstr.CALL FUNCTION 'SCMS_BASE64_ENCODE_STR'EXPORTINGinput = xstrIMPORTINGoutput = encode_str.WRITE : / 'Encode:' ,encode_str.* 2018.08.18 若http用Get方式作为URL一部分需要将+替换成%2B
DATA: out TYPE string .
out = encode_str.
REPLACE ALL OCCURRENCES OF '+' IN out WITH '%2B'.WRITE: / ' Out:', out.
* 2018.08.18 endCLEAR xstr.
CALL FUNCTION 'SCMS_BASE64_DECODE_STR'EXPORTINGinput = encode_str
* unescape = 'X'IMPORTINGoutput = xstrEXCEPTIONSfailed = 1OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.WRITE : / 'Decode:' ,xstr.DATA: codepage(4) TYPE n.
DATA: encoding(20) TYPE c.
DATA: convin TYPE REF TO cl_abap_conv_in_ce.
DATA: str TYPE string.CALL FUNCTION 'SCP_CODEPAGE_BY_EXTERNAL_NAME'EXPORTINGexternal_name = charsetIMPORTINGsap_codepage = codepageEXCEPTIONSnot_found = 1OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
encoding = codepage."创建解码对象
convin = cl_abap_conv_in_ce=>create( encoding = encoding input = xstr ).
CALL METHOD convin->read( IMPORTING data = str ).
WRITE: / 'Encode:' ,str.
四、执行结果
【转】ABAP BASE64编码与解码练习相关推荐
- Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式
Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...
- js php base64,JavaScript实现Base64编码与解码的代码详解
本篇文章给大家分享的是jJavaScript实现Base64编码与解码的代码详解,内容挺不错的,希望可以帮助到有需要的朋友 一.加密解密方法使用//1.加密 var str = '124中文内容'; ...
- Base64编码和解码
Base64编码和解码 DES加密后密文长度是8个整数倍 加密后比明文长度变长,所以编码表找不到对应字符,乱码 使用Base64编码和解密:从Apache现在 1.加密后密文使用Base64编码 2. ...
- java解码base64的png图片_使用PHP对图片进行base64编码和解码(png、jpg,声音、视频)...
为什么要对图片base64编码 base64是网络上最常见的传输8Bit字节代码的编码方式之一.base64主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输.由于一些二进制字符在传输 ...
- mysql base64 乱码_PHP base64编码后解码乱码的解决办法
在用PHP做东西的时候发现了一个问题,可以简单的归结为乱码的问题,但是这个问题不是函数本身造成的.来看看罪魁祸首是谁. 嫌疑人:base64_encode 和 base64_decode 罪行:我写了 ...
- android Java BASE64编码和解码二:图片的编码和解码
1.准备工作 (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础 (2)添加 ImgHelper 工具类 package com.a ...
- Linux上的js解码,使用JavaScript实现Base64编码与解码
我们知道,浏览器的window对象提供有window.atob()和window.btoa()方法可以对字符串进行Base64编码和解码. console.log(window.btoa(window ...
- 【Python】base64模块对图片进行base64编码和解码
图片的base64编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址. 这样做有什么意义呢?我们知道,我们所看到的网页上的每一个图片,都是需要消耗一个 http 请求下载而来的. 没 ...
- Java、JS、OC、Flutter的Base64编码和解码
题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. ** 你可能需要 CSDN 网易云课堂教程 掘金 EDU学院教程 知乎 Flutter系列文章 本文章将描述在 Jav ...
最新文章
- 快速排序的实现与注意点
- 吴恩达《构建机器学习项目》精炼笔记(1)-- 机器学习策略(上)
- 关于epoll,select,poll的理解
- 给你的Mr.Right画张择偶地图像
- 毕业两年的我--奋斗中的程序员
- ★一张图弄明白从零维到十维
- GNOME Screencaster 将支持 Miracast P2P 传输
- idea使用maven私服时下载源码
- Unity中配合EmmyLua的Lua使用方案
- 苹果系统itunes连iphone连不上服务器,iphone连不上itunes怎么办,iphone连不上itunes的解决办法...
- python C语言加速
- Windows下如何强制删除文件夹及文件的命令
- ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB
- 深度强化学习方法(DQN)玩转Atari游戏(pong)
- 计算机初学者先学什么语言,计算机语言入门先学什么?
- ColdFusion CGI or Application variables
- PM应该了解的九大项目管理问题
- Ubuntu下软件包的清理与删除
- 当代女性修身养性的箴言书——《读史做女人》
- TOOLFK工具-在线汉字/字母/人民币/简繁体转换工具
热门文章
- MES系统模块设计之物料控制 Material Control -- 1
- Return to the basic - 继承(Inheritation)
- 老外听到哪些中式英文是崩溃的?(转自外贸Jackson)
- 【干货】产品经理必读:app开发版本迭代的节奏该如何把握?
- 【pmcaff】那些 2015 年将出现的产品,你最期待哪款?
- 深度剖析Kubernetes API Server三部曲 - part 2
- Hibernatediscriminator-value用法
- kinect 录制彩色和深度视频
- tomcat变量环境脚本setclasspath.sh分析
- 与众不同 windows phone (22) - Device(设备)之摄像头(硬件快门, 自动对焦, 实时修改捕获视频)...