现在SAP系统基本上都是仅仅支持unicode的,只有SAP早期版本(ERP 6.0 SR2之前)支持Unicode及非Unicode字符集(也称Nonunicode)。ERP 6.0 SR3之后则只支持Unicode字符集。
SAP系统使用的Unicode字符集占12个字节;而非Unicode则是占9个字节。两套字符集对于程序中的字符串处理有重大差异。无论怎样,使用类DYNAMIC_OUTPUT_LENGTH中的方法DYNAMIC_OUTPUT_LENGTH都能正确的取得长度(汉字或者是英文)。
检查SAP系统是否是unicdoe:菜单-system-status
测试代码:
1
2
3
4
5
6
7
8
9
10
|
REPORT ZTEST_UNICODE_LENGTH.
DATA: l_len type i,
l_str type string.
l_str = '测试汉字长度'.
l_len = CL_ABAP_LIST_UTILITIES=>DYNAMIC_OUTPUT_LENGTH( l_str ).
write: `Length1 is`, l_len.
l_str = 'Test'.
l_len = CL_ABAP_LIST_UTILITIES=>DYNAMIC_OUTPUT_LENGTH( l_str ).
write:/ `Length2 is`, l_len.
|
运行:
以上。