Power Automate如何处理文件名中含ñ等特殊字符的解析问题
兼容两种Content-Disposition格式的文件名提取方案
针对你遇到的普通文件名和带特殊字符编码文件名的解析问题,可以通过判断字段类型+对应处理逻辑来解决,调整后的表达式如下:
if( contains(outputs('HTTP')['headers']?['Content-Disposition'], 'filename*='), uriComponentToString(split(outputs('HTTP')['headers']?['Content-Disposition'], 'filename*=UTF-8''')[1]), split(outputs('HTTP')['headers']?['Content-Disposition'], '"')[1] )
逻辑说明:
- 区分格式
使用contains函数检查Content-Disposition头是否包含filename*=,以此判断是带UTF-8编码的特殊文件名格式。 - 处理编码文件名
若匹配到filename*=,用split分割字符串filename*=UTF-8'',取分割后的第二部分(即URL编码的文件名),再通过uriComponentToString解码URL编码字符(比如将%C3%B1还原为ñ)。 - 处理普通文件名
若未匹配到filename*=,则沿用你原来的逻辑,通过双引号分割提取文件名。
格式对应示例:
- 普通格式:
attachment; filename="Filename.pdf"→ 提取结果:Filename.pdf - 编码格式:
attachment; filename*=UTF-8''Filename with %C3%B1.pdf→ 解码后结果:Filename with ñ.pdf
内容的提问来源于stack exchange,提问作者Bijan
相关产品推荐
相关产品推荐

