根据SAP使用数据不一样汉字占用长度不同!
因为外围系统汉字占两个字符,导致SAP传给外围系统报错说超长,一开始使用strlen判断长度 如果是因为字母没问题,汉字也按照一个字符串算。通过查找帮助文档找到class 闲话少说直接上代码:
lv_string = `这是一个测试中文字符串长度例子abc`.
DATA(lv_xstr) = cl_abap_conv_codepage=>create_out( codepage = `UTF-16`
)->convert( lv_string ).
" 使用XSTRLEN获取字符串长度,汉字计为两个字符
cl_demo_output=>display(
| strlen长度 { strlen( lv_string )
} \n xstrlen长度 { xstrlen( lv_xstr ) }| ).
注意:UTF-16由12个字节表示