如何在Azure Logic Apps中修改triggerBody属性并解决编码问题?
解决方案:使用Logic Apps内置函数强制以ISO-8859-1编码解析内容
可以通过组合Logic Apps内置的binary()和decodeString()函数,绕过请求中$content-type的charset配置,强制指定编码解析内容:
- 第一步:用
binary(triggerBody()['$content'])将base64格式的$content转换为二进制数据 - 第二步:用
decodeString(上述二进制值, 'ISO-8859-1')将二进制数据以ISO-8859-1编码解码为字符串
完整的表达式示例:
decodeString(binary(triggerBody()['$content']), 'ISO-8859-1')
效果说明
- 无论请求的
$content-type里填写的charset是ASCII还是其他错误值,这个表达式都会强制以ISO-8859-1解码$content中的base64内容,确保"°"这类特殊字符不会损坏 - 当请求的charset本身就是ISO-8859-1时,该表达式的输出结果和
string(triggerBody())一致,不会影响正常场景的解析
内容的提问来源于stack exchange,提问作者VladiMio
相关产品推荐
相关产品推荐

