SAP 编码(Code pages)

Package SCP: SAP Code Pages

Transaction SCP: 查看系统Code page 

CL_ABAP_CODEPAGE Code Page 工具类

字符与编码的转换

 SAP编码与其它编码的名称对应

  SAP系统默认编码        

SAP 编码(Code pages)_第1张图片

 常见字符编码在sap中对应的code page

UTF-8:                        

        Code page 4110 

带BOM的UTF-8:

        编码方式为4110,和UTF-8的区别是具有BOM,使用4110转化后的xstring前拼接

EFBBBF可被TEXT文本识别为带BOM的UTF-8

        SAP 编码(Code pages)_第2张图片

 UTF-16BE:

        Code page 4102  编码前拼接FEFF(SAP转换不会添加),可被TEXT文本识别

        SAP 编码(Code pages)_第3张图片

  UTF-16LE:

        Code page 4103  编码前拼接FFFE(SAP转换不会添加),可被TEXT文本识别

        SAP 编码(Code pages)_第4张图片

GB2312:

        Code page 8400  简体中文系统下,ANSI 编码代表 GB2312 编码,TEXT中编码方式显示为ANSI

        SAP 编码(Code pages)_第5张图片

Big5 繁体字:

        Code page 8300  GB2312也支持繁体字

PS:

1. 关于字符编码的详细信息见百度资料

2. 不要随便复制字符串到系统中,有些字符复制到SAP中不可见,却会实际产生影响,如下代码

DATA: lv_string1 TYPE string,
      lv_string2 TYPE string.

DATA: lv_xstring1 TYPE xstring,
      lv_xstring2 TYPE xstring.

lv_string1 = 'A'.
lv_string1 = |'|.
lv_string2 = '‪A'.
lv_string2 = |'‪|.

lv_xstring1 = cl_abap_codepage=>convert_to( lv_string1 ).

WRITE:/ lv_string1.
WRITE:/ lv_xstring1.

lv_xstring2 = cl_abap_codepage=>convert_to( lv_string2 ).

WRITE:/ lv_string2.
WRITE:/ lv_xstring2.

IF lv_string1 = lv_string2.
  WRITE: /'lv_string1 = lv_string2'.
ELSE.
  WRITE: /'lv_string1 <> lv_string2'.
ENDIF.

 比如将不可见字符复制到GUI_DOWNLOAD的下载路径中会引发异常 UNKNOWN_DP_ERROR

SAP 编码(Code pages)_第6张图片

 该异常排查时比较麻烦,感兴趣的朋友可以试着恶作剧下

你可能感兴趣的:(问题,功能,sap)