确定一个字段中允许的字符数? [英] Determine the number of characters which are allowed in a field?

查看:0
本文介绍了确定一个字段中允许的字符数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是SAP RFC: nuc_length vs uc_length

的跟进问题

使用PyRFC,我可以获得如下所示的函数描述:

get_function_description(rfc_name)

对于每个字段,我可以读取uc_lengthnuc_length

如果nuc_long=40且uc_long=80,我如何确定可以输入到该字段中的Unicode字符数?

推荐答案

不幸的是,我认为这是不可能的。 根据给定的长度(以字节为单位),您只能计算适合此字段的最大字符数。

对于Unicode ABAP系统,我们知道SAP将字符数据存储在UTF-16(大小字节顺序格式)的代码页4102/4103中。这意味着一个字符至少需要2个字节,即在您的示例中,最大长度可以计算为UC_LENGTH/2=40个字符。我认为SAP还没有使用任何4字节字符。但是,使用代码页4102/4103可以做到这一点。因此,这取决于您将在字段中放入哪个Unicode字符,uc_LENGTH=80的字段中存储的字符可能少于40个。

对于非Unicode ABAP系统,这甚至更加困难。只要您只使用英文登录语言的代码页1100,一个字符通常只需要1个字节。但例如,如果使用日语和代码页8000,则文本数据可以包含混合的US-ASCII字符和日语字符。这意味着文本字段可以同时包含两个字符:1字节字符和2字节字符。更困难的是,包括代码页1100在内的所有非Unicode代码页都有3个字节的字符。例如,有一些SAP特定的字符图标/符号具有此长度。 因此,NUC_LENGTH=40字段最多可以包含40个Unicode字符,但在最坏的情况下也只能包含13个字符。这取决于正在使用的代码页以及您要填充到该字段中的Unicode字符。

这篇关于确定一个字段中允许的字符数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆