点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我正在尝试导出编码为IS...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我正在尝试导出编码为IS...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
我正在尝试导出编码为ISO-8859-15的数据文件。 此代码类型允许使用€,Š,š,Ž,ž,Œ,œ或Ÿ等字符。
我已经研究了可用于此目的的ABAP工具,尤其是通过这种出色的 Sandra Rossi 的encoding + conversion">博客。
在这里您可以找到我的测试代码:
*&--------------------------------------------- ------------------------ * *&报告ZBC_FILE_ENCODING *&------------------------------------------------ --------------------- * *&编码测试报告 *&------------------------------------------------ --------------------- * 报告zbc_file_encoding。 数据:gv_file TYPE text255, gt_file类似于gv_file的标准表, gv_filename TYPE字符串, gv_path TYPE字符串, gv_fullpath TYPE字符串, gv_bin_filesize TYPE i, gt_bin_data TYPE solix_tab, gv_xfile TYPE xstring, gv_sfile TYPE字符串, gv_sap_codepage TYPE cpcodepage, gv_default_file_name TYPE字符串, gv_external_name TYPE tcp00a-cpattr, go_abap_conv_obj类型参考cl_abap_conv_obj, gv_incode TYPE cpcodepage, gv_outcode TYPE cpcodepage。 gv_file ='A; B; C;é;€;Š;š;Ž;ž;Œ;œ;Ÿ'。 将gv_file附加到gt_file。 gv_file ='D; E; F;é;€;Š;š;Ž;ž;Œ;œ;Ÿ'。 将gv_file附加到gt_file。 将gt_file循环到gv_file中。 CONCATENATE gv_sfile gv_file cl_abap_char_utilities => cr_lf INTO gv_sfile。 结局。 gv_external_name ='ISO-8859-15'。 通话功能" SCP_CODEPAGE_BY_EXTERNAL_NAME" 出口 external_name = gv_external_name 输入 sap_codepage = gv_sap_codepage 例外情况 其他= 1。 IF sy-subrc NE 0。 消息ID sy-msgid类型sy-msgty编号sy-msgno和sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。 万一。 通话功能" SCP_GET_CODEPAGE_NUMBER" 出口 database_also ='' 输入 appl_codepage = gv_incode 例外情况 其他= 1。 IF sy-subrc NE 0。 消息ID sy-msgid类型sy-msgty编号sy-msgno和sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。 万一。 gv_outcode = gv_sap_codepage。 创建对象go_abap_conv_obj 出口 incode = gv_incode 输出代码= gv_outcode 小姐='S' ctrlcode ='。' 例外情况 其他= 1。 IF sy-subrc NE 0。 消息ID sy-msgid类型sy-msgty编号sy-msgno和sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。 万一。 呼叫方法go_abap_conv_obj->转换 出口 入口= gv_sfile outbufflg = gv_bin_filesize 输入 Outbuff = gv_xfile 例外情况 其他= 1。 IF sy-subrc NE 0。 消息ID sy-msgid类型sy-msgty编号sy-msgno和sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。 万一。 通话功能'SCMS_XSTRING_TO_BINARY' 出口 缓冲区= gv_xfile 输入 output_length = gv_bin_filesize 桌子 binary_tab = gt_bin_data。 CONCATENATE'test_encoding_'gv_external_name'.csv'INTO gv_default_file_name。 呼叫方法cl_gui_frontend_services => file_save_dialog 出口 default_file_name = gv_default_file_name 改变 文件名= gv_文件名 路径= gv_path fullpath = gv_fullpath 例外情况 其他= 1。 IF sy-subrc NE 0。 消息ID sy-msgid类型sy-msgty编号sy-msgno和sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。 万一。 呼叫方法cl_gui_frontend_services => gui_download 出口 bin_filesize = gv_bin_filesize 文件名= gv_fullpath filetype ='BIN' show_transfer_status ='' 改变 data_tab = gt_bin_data 例外情况 其他= 1。 IF sy-subrc NE 0。 消息ID sy-msgid类型sy-msgty编号sy-msgno和sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。 ENDIF。
不幸的是,最后,我没有达到我的期望:
Notepad ++表示格式为Windows-1252,特殊字符弄乱了,甚至连回车符和换行符也无法识别。
关于我做错了什么以及如何实现我的目标的任何想法?
在此先感谢您的帮助。
最诚挚的问候
Marco Silva
(15.6 kB)
你好,
我必须生成一个合法使用ISO-8859-15编码的文件。 但是我想重点是允许使用欧元符号(€)。
无论如何,由于我可以在SAP表TCP00A中找到页面代码1164的ISO-8859-15属性,因此系统不应该能够以正确的编码创建文件吗?
谢谢。
Marco
一周热门 更多>