将xString转换为String

2020-08-30 13:57发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

我在下面尝试了这段代码将十六进制转换为字符串,但是为什么结果变成###


   数据转换类型参考cl_abap_conv_in_ce。

   数据缓冲区(4)TYPE x。

   数据文本(100)TYPE c。

   缓冲区='02'。  "

   conv = cl_abap_conv_in_ce => create(

         encoding ='UTF-8')。

   转换->转换(

         导出输入=缓冲区

         导入数据=文本)。

请咨询。

谢谢

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

我在下面尝试了这段代码将十六进制转换为字符串,但是为什么结果变成###


   数据转换类型参考cl_abap_conv_in_ce。

   数据缓冲区(4)TYPE x。

   数据文本(100)TYPE c。

   缓冲区='02'。  "

   conv = cl_abap_conv_in_ce => create(

         encoding ='UTF-8')。

   转换->转换(

         导出输入=缓冲区

         导入数据=文本)。

请咨询。

谢谢

付费偷看设置
发送
5条回答
我是小鹏鹏啊
1楼 · 2020-08-30 14:17.采纳回答

答案很简单,因为abap中的十六进制是16位,与此不相同。 abap中的所有内容都必须乘以100。如果我对其进行调整,则#不会出现。

樱桃小丸子0093
2楼-- · 2020-08-30 14:16

有一个非常有用的类进行转换CL_BCS_CONVERT

愤怒的猪头君
3楼-- · 2020-08-30 14:30

没有看到任何问题。 您的代码正常运行。

您的代码正在转换十六进制值02000000(它定义为X长度4,因此它是= 02 00 00 00)。
结果完全是"控制字符" U + 0002 。

也许您想转换数字2(数字二)字符?
在HEX中不是02,而在HEX中是32( U + 0032)。 检查例如 https://www.utf8-chartable.de/或类似的十六进制/UTF-8字符表。

三十六小时_GS
4楼-- · 2020-08-30 14:19

是否尝试相反的操作?

数据六类型xstring值'02'。
 data(dec)=转换字符串(hexa)。
 写十月。


 dec = 2。
 hexa =十进制
 写六。
 
浮生未央
5楼-- · 2020-08-30 14:13

在ABAP Unicode系统中(任何版本> = 7.50的系统只能是Unicode),一个字符占用两个字节。 您要做的是将代表UTF-8"字符"的十六进制值为02.00.00.00的四个字节转换为ABAP字符。 如果您的系统是Unicode(UTF-16)大字节序,则将获得四个十六进制值0002.0000.0000.0000的字符。 小尾数:0200.0000.0000.0000。 您可以看到在调试器中,您可以显示字符的十六进制表示形式。

一周热门 更多>