SAP ABAP GUI_DOWNLOAD中下载乱码的问题

1   GUI_DOWNLOAD

1.1      问题表现

GUI_DOWNLOAD在应用当中有时会导致输出的文件在某些电脑正常显示,在某些电脑乱码显示。这个固然是由于各个电脑系统配置有差异,但是我们可以在应用该函数时就排除该差异来保证任意台电脑正常显示输出的文件。

如下属代码:

该代码把一个内表it_printab[]直接放到一个文件sfile中(代码示例来自于ZHRR0028)。

  call function 'GUI_DOWNLOAD'
      exporting
*       BIN_FILESIZE                    =
        filename                        = sfile "sfile " "p_file
        filetype                        = 'DAT'
        codepage                        = '8404'
      tables
        data_tab                        = it_printab[] .

1.2      问题排除方法

在函数中指定codepage就可以了,如该代码示例中指定codepage为’8404’。

2   关于codepage

2.1      gui_download中对codepage的解释

      通过上述解释可以知道,SAP codepage是一个4位的number。函数SCP_CODEPAGE_BY_EXTERNAL_NAME可以通过iso,gbk等输入参数确定返回的是the SAP codepage number for an external character set name;函数NLS_GET_FRONTEND_CP通过输入语言参数返回的是the appropriate non-Unicode frontend codepage for a language。比如本例用的函数是NLS_GET_FRONTEND_CP,输入是语言zh,返回的是8404。

2.2      表

实际上有两个表存储codepage,其对应的函数关系如下:

函数:SCP_CODEPAGE_BY_EXTERNAL_NAME

表:TCP00A- Code Page Attributes

函数:NLS_GET_FRONTEND_CP:

表:TCP0F-Relationship Between System Codepage and Frontend Codepage

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值