PyRFC中nuc_length和uc_length参数的含义?

The meaning of nuc_length and uc_length parameters in PyRFC?

我最喜欢的搜索引擎 (ecosia) 无法从上游 (SAP) 找到关于 uc_lengthnuc_length.

含义的规范文档

两者有什么区别?

我使用 clientPrintDescription.py

的修改版本获取这些参数

我不能确定他们在 Python 脚本中做了什么,但根据我的 ABAP/SAP 知识,我可以很容易地说:

  • nuc_length:基于非 Unicode ABAP 的系统中参数的长度,以字节数为单位
  • uc_length: Unicode ABAP-based system中参数的长度,字节数

基于非 Unicode ABAP 的系统使用一个字节对每个字符进行编码,而基于 Unicode ABAP 的系统使用两个字节对每个字符进行编码。从 ABAP 7.50 开始,所有系统都是 Unicode。

在基于Unicode ABAP的系统中,字符串和文本字段可以存储从U+0000到U+FFFF的Unicode字符。请注意,字符 U+D800 到 U+DFFF 被 ABAP 运行时环境视为实际字符 (dixit ABAP documentation: "The ABAP programming language supports a subset covered by UCS-2 and not the full UTF-16 set.")

请注意,结构化参数由多个字段组成,可以混合字符和非字符,"uc_length"只会将字符字段的字节数加倍。由于 "alignment".

,字段之间也有一些虚拟字节

在您的示例中,Unicode 系统中 80 个字节的文本字段对应于 40 个字符。