点击此处---> 群内免费提供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)
这只是一个Notepad ++问题。 它无法有效地猜测实际的代码页是什么(信息未存储),因此有一种非常简单的算法来嗅探第一个字节并以较高的误报率进行猜测。
手动强制Notepad ++考虑 通过菜单为ISO-8859-15,它将显示与ISO-8859-15字符集相对应的字符:
PS:感谢您提供的示例性示例! (尝试回答的人不会浪费时间)
一周热门 更多>