一、功能描述

  练习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编码与解码练习相关推荐

  1. Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式

    Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...

  2. js php base64,JavaScript实现Base64编码与解码的代码详解

    本篇文章给大家分享的是jJavaScript实现Base64编码与解码的代码详解,内容挺不错的,希望可以帮助到有需要的朋友 一.加密解密方法使用//1.加密 var str = '124中文内容'; ...

  3. Base64编码和解码

    Base64编码和解码 DES加密后密文长度是8个整数倍 加密后比明文长度变长,所以编码表找不到对应字符,乱码 使用Base64编码和解密:从Apache现在 1.加密后密文使用Base64编码 2. ...

  4. java解码base64的png图片_使用PHP对图片进行base64编码和解码(png、jpg,声音、视频)...

    为什么要对图片base64编码 base64是网络上最常见的传输8Bit字节代码的编码方式之一.base64主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输.由于一些二进制字符在传输 ...

  5. mysql base64 乱码_PHP base64编码后解码乱码的解决办法

    在用PHP做东西的时候发现了一个问题,可以简单的归结为乱码的问题,但是这个问题不是函数本身造成的.来看看罪魁祸首是谁. 嫌疑人:base64_encode 和 base64_decode 罪行:我写了 ...

  6. android Java BASE64编码和解码二:图片的编码和解码

    1.准备工作 (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础 (2)添加 ImgHelper 工具类 package com.a ...

  7. Linux上的js解码,使用JavaScript实现Base64编码与解码

    我们知道,浏览器的window对象提供有window.atob()和window.btoa()方法可以对字符串进行Base64编码和解码. console.log(window.btoa(window ...

  8. 【Python】base64模块对图片进行base64编码和解码

    图片的base64编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址. 这样做有什么意义呢?我们知道,我们所看到的网页上的每一个图片,都是需要消耗一个 http 请求下载而来的. 没 ...

  9. Java、JS、OC、Flutter的Base64编码和解码

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. ** 你可能需要 CSDN 网易云课堂教程 掘金 EDU学院教程 知乎 Flutter系列文章 本文章将描述在 Jav ...

最新文章

  1. 快速排序的实现与注意点
  2. 吴恩达《构建机器学习项目》精炼笔记(1)-- 机器学习策略(上)
  3. 关于epoll,select,poll的理解
  4. 给你的Mr.Right画张择偶地图像
  5. 毕业两年的我--奋斗中的程序员
  6. ★一张图弄明白从零维到十维
  7. GNOME Screencaster 将支持 Miracast P2P 传输
  8. idea使用maven私服时下载源码
  9. Unity中配合EmmyLua的Lua使用方案
  10. 苹果系统itunes连iphone连不上服务器,iphone连不上itunes怎么办,iphone连不上itunes的解决办法...
  11. python C语言加速
  12. Windows下如何强制删除文件夹及文件的命令
  13. ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB
  14. 深度强化学习方法(DQN)玩转Atari游戏(pong)
  15. 计算机初学者先学什么语言,计算机语言入门先学什么?
  16. ColdFusion CGI or Application variables
  17. PM应该了解的九大项目管理问题
  18. Ubuntu下软件包的清理与删除
  19. 当代女性修身养性的箴言书——《读史做女人》
  20. TOOLFK工具-在线汉字/字母/人民币/简繁体转换工具

热门文章

  1. MES系统模块设计之物料控制 Material Control -- 1
  2. Return to the basic - 继承(Inheritation)
  3. 老外听到哪些中式英文是崩溃的?(转自外贸Jackson)
  4. 【干货】产品经理必读:app开发版本迭代的节奏该如何把握?
  5. 【pmcaff】那些 2015 年将出现的产品,你最期待哪款?
  6. 深度剖析Kubernetes API Server三部曲 - part 2
  7. Hibernatediscriminator-value用法
  8. kinect 录制彩色和深度视频
  9. tomcat变量环境脚本setclasspath.sh分析
  10. 与众不同 windows phone (22) - Device(设备)之摄像头(硬件快门, 自动对焦, 实时修改捕获视频)...