CPI中的特殊字符

2020-08-22 16:00发布

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

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


我正在发送包含特殊字符ë(Cliënt)的JSON消息。 我添加了交换属性CamelCharsetName,如SAP注释2533303中所述,在跟踪过程中,直到将特殊字符发送到接收系统之前,一切看起来都正常。 然后变成一个? (客户)。 我将交换配置文件添加到HTTP接收器之前的内容修改器形状中,但是它仍然弄乱了字符。

有什么想法吗?

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

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


我正在发送包含特殊字符ë(Cliënt)的JSON消息。 我添加了交换属性CamelCharsetName,如SAP注释2533303中所述,在跟踪过程中,直到将特殊字符发送到接收系统之前,一切看起来都正常。 然后变成一个? (客户)。 我将交换配置文件添加到HTTP接收器之前的内容修改器形状中,但是它仍然弄乱了字符。

有什么想法吗?

付费偷看设置
发送
5条回答
空代码
1楼 · 2020-08-22 16:20.采纳回答

好。 我现在在内容修饰符中有此内容:

{" regardingobjectid_msdyn_customerasset@odata.bind":"/msdyn_customerassets(${property.ObjectId})"," subject":" $ {property.Subject}"," description":"这是äCliënt"," Actualdurationminutes":30}

发送给接收者:

{" regardingobjectid_msdyn_customerasset@odata.bind":"/img/msdyn_customerassets(00f402b0-b649-ea11-a813-000d3a49e1a5)"," subject":" Afmelding"," description":"这是Cli?nt" ," actualdurationminutes":30}

在应用程序中显示:

th \ u00efs是\ u00e4 Cli \ u00ebnt

直接从Postman发送到接收应用程序效果很好。

SC_Yao
2楼-- · 2020-08-22 16:38

您应该写"在应用程序中显示:th \ u00efs是\ u00e4 Cli \ u00ebnt"。 但是\ 00e4是charä的正确转义序列。 因此,接收应用程序能够确定发送给它的Unicode字符。 否则,您的应用程序将显示? (或其他垃圾)代替\ 00e4。 因此,从信息角度来看,我想说的是您的目标应用收到了正确的信息,只是无法呈现它。 因此,也许您的目标应用无法很好地解码json。 在PHP中 有一些方法可以解析包括Unicode转义序列的JSON并将其解码回正确的Unicode表示形式: https://stackoverflow.com/questions/3268810/encoding-troubles-one-format-to-another

骆驼绵羊
3楼-- · 2020-08-22 16:15

嗨Iddo

可能是接收系统 需要了解编码。 尝试将一个名为Content-Type的标头(不是属性)添加到iflow中,并具有以下值:

 application/json;  charset = utf-8 

Morten

ZJXianG
4楼-- · 2020-08-22 16:40

您好!

尝试直接在CPI中临时设置有效负载, 即不要从邮递员张贴它。 保留Content-Type标头。 接收端有什么变化吗? 如果是这样,问题可能出在邮递员的编码上。 您是否从Postman发送Content-Type请求标头? 如果不是,请尝试添加具有相同内容的内容(即" application/json; charset = utf-8")。

问候,

Morten

四川大学会员
5楼-- · 2020-08-22 16:20
# p#

嗨,Morten,

谢谢。 内容类型application/json已经存在。 添加charset = utf-8对该字符没有任何作用。 在目标系统中,它仍然显示为Cli \ u00ebnt,在跟踪中显示为Cli?nt。

我正在使用邮递员以Cliënt的身份发送请求:

{" RegisterTimeLineInputJSON":{" RegisterTimeLine":{" ObjectTypeCode":" msdyn_customerasset"," Activity":"任务"," ObjectId ":"" 00f402b0-b649-ea11-a813-000d3a49e1a5","主题":" Afmelding","描述":"Cliënt"}}}}

将其转换为XML,将所有必要字段放在属性容器中,以在内容修改器步骤中再次提取它们,如下所示:

{" regardingobjectid_msdyn_customerasset@odata.bind":"/msdyn_customerassets(${property.ObjectId})"," subject":" $ {property.Subject}"," description":" $ {property.Description}" ," actualdurationminutes":30}

一周热门 更多>