2020-09-04 07:57发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我对Unicode字符有疑问,
假设我有一个字符串:"TôiDễThương"
我想将此字符串转换为:'Toi De Thuong'
任何人都可以使用涵盖所有情况的功能模块或算法来解决此问题。
非常感谢
一个简单的解决方案是列出所有可能的字符并使用 TRANSLATE (或翻译用于ABAP) 7.40及更高版本)。
您可以通过查看表TCPUCATTR列出所有可能的字符,与* A关联的所有字符都可以通过* *大写字母A *来查找,而*可以通过* *来查找" a" 小写字母A *等。
此代码列出了TRANSLATE的翻译字母:
DATA c1 TYPE c LENGTH 1。 数据x2类型x长度2。 DATA(upper_lower)= sy-abcde && to_lower(sy-abcde)。 选择*从tcpucattr charid喜欢'00%'的地方 AND attrkind ='N' AND(attr LIKE'%SMALL LETTER%'或attr Like'%CAPITAL LETTER%') 插入表@DATA(tcpucattr_s)。 做52次。 DATA(字母)=子字符串(val = upper_lower off = sy-index-1 len = 1)。 如果sy-index <= 26。 DATA(pattern_attr)= | *大写字母{to_upper(letter)} * |。 其他。 pattern_attr = | *小写字母{to_upper(letter)} * |。 万一。 DATA(字母)=``。 写:/字母,":"。 在tcpucattr_s的ASSIGNING FIELD-SYMBOL()处环回attr CP pattern_attr。 x2 = -charid + 2。 c1 = cl_abap_conv_in_ce => uccp(x2)。 如果c1 <>字母。 写:c1 NO-GAP,字母NO-GAP。 万一。 结局。 ENDDO。
PS:可以简单地删除" combining accent"类型的字符(在TCPUCATTR中全部带有文本" COMBINING")。
请使用COMMENT 用于评论,问题,添加详细信息等的按钮,ANSWER仅是提出解决方案,在答案区域的右边删除SAP文本:"在回答之前,只有在为发布者的问题提出解决方案时才应提交答案。 "
有功能模块SCP_REPLACE_STRANGE_CHARS。 也许不是您希望的那样考虑或不考虑所有字符,但是您可以复制并改编(并简化)。
如果我想删除越南语的口音,如果我 用这个fm,有些情况不好,我的意思是字符消失了
最多设置5个标签!
一个简单的解决方案是列出所有可能的字符并使用 TRANSLATE (或翻译用于ABAP) 7.40及更高版本)。
您可以通过查看表TCPUCATTR列出所有可能的字符,与* A关联的所有字符都可以通过* *大写字母A *来查找,而*可以通过* *来查找" a" 小写字母A *等。
此代码列出了TRANSLATE的翻译字母:
PS:可以简单地删除" combining accent"类型的字符(在TCPUCATTR中全部带有文本" COMBINING")。
请使用COMMENT 用于评论,问题,添加详细信息等的按钮,ANSWER仅是提出解决方案,在答案区域的右边删除SAP文本:"在回答之前,只有在为发布者的问题提出解决方案时才应提交答案。 "
有功能模块SCP_REPLACE_STRANGE_CHARS。 也许不是您希望的那样考虑或不考虑所有字符,但是您可以复制并改编(并简化)。
如果我想删除越南语的口音,如果我 用这个fm,有些情况不好,我的意思是字符消失了
一周热门 更多>