在实际项目中,尤其是一些系统集成项目中,经常会遇到需要接收远端发送来的二进制流并进行分析的场景。这个二进制流的内容可能是一些二进制文件,比如PDF、JPG等格式的文件,也可能是文本文件。对于文本文件,我们需要将二进制流恢复为用户可读的文本。这是本文将重点讨论的主题。在开始这一步的学习之前,请务必完成前置章节的学习:如何在ABAP报表中以二进制方式上传本地文件。在本前置章节中,将文本文件以二进制方式上传到ABAP服务器,模拟远程内容提供者(ContentProvider)提供的二进制流,类型为xstring。这些二进制流的实际内容是一些包含汉字的文本。我们在本文中的任务是将这些二进制流转换回用户可读的文本,然后打印出来。我们新建一个文本文件,输入一个汉字王,保存文件名为Wang-utf8.txt,编码选择UTF-8。此文件的大小显示为3个字节。这是我们所期望的行为,因为UTF-8是Unicode的一种实现,而一个汉字的Unicode值范围是0X4E00到0x9FA5。如果是UTF-8编码,则需要3个字节。接下来,我们将在ABAP代码中对包含这个汉字的文本文件进行各种操作。有关详细信息,请参阅本文。小结在使用ABAP操作包含汉字的文件时,首先要弄清楚当前汉字是基于哪个字符集,然后从ABAP数据库表TCP00中找到ABAP系统中字符集的编号,以保证二进制流包含中文内容的匹配传入的ABAPEncoding值,这样才能得到正确的处理结果。
