现在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. |
运行:
以上。
发表评论