【发布时间】:2019-10-02 09:52:02
【问题描述】:
我最喜欢的搜索引擎 (ecosia) 无法从上游 (SAP) 中找到关于 uc_length 与 nuc_length 含义的规范文档。
两者有什么区别?
我用clientPrintDescription.py的修改版本得到这些参数
【问题讨论】:
我最喜欢的搜索引擎 (ecosia) 无法从上游 (SAP) 中找到关于 uc_length 与 nuc_length 含义的规范文档。
两者有什么区别?
我用clientPrintDescription.py的修改版本得到这些参数
【问题讨论】:
我不能确定他们在 Python 脚本中做了什么,但根据我的 ABAP/SAP 知识,我可以很容易地说:
基于非 Unicode ABAP 的系统使用一个字节来编码每个字符,而基于 Unicode ABAP 的系统使用两个字节来编码每个字符。从 ABAP 7.50 开始,所有系统都是 Unicode。
在基于 Unicode ABAP 的系统中,字符串和文本字段可以存储从 U+0000 到 U+FFFF 的 Unicode 字符。请注意,字符 U+D800 到 U+DFFF 被 ABAP 运行时环境视为实际字符(dixit ABAP documentation:“ABAP 编程语言支持 UCS-2 涵盖的子集,而不是完整的 UTF-16 集。”)
请注意,结构化参数由几个可以混合字符和非字符的字段组成,“uc_length”将使字符字段的字节数加倍。由于"alignment",字段之间也有一些虚拟字节。
在您的示例中,Unicode 系统中 80 个字节的文本字段对应于 40 个字符。
【讨论】:
80 / 2 ===> 40。我知道 utf16 是什么,但是……为什么不告诉开发者他可以传输的 unicode 字符数呢?我知道你不是这个的发明者。非常感谢您的回答。我只需要写下我的想法。