Conquering Non-ASCII Filenames in Logic Apps: A Multipart/Form-Data Odyssey

This article tackles a challenge encountered when sending multipart/form-data content in Azure Logic Apps. While the official documentation outlines a standard approach, it stumbles upon a hurdle: filenames containing non-ASCII characters (like Chinese or Japanese) get displayed as garbled question marks when implemented as instructed.

But fear not, a valiant solution emerges! By encoding the entire payload as a base64 string, we can bypass this limitation. Imagine a secret message, encoded for secure transmission – that’s the essence of this approach.

Here’s a breakdown of the hero’s journey:

The Enemy: Non-ASCII filenames causing mangled displays.

The Alternative: Encoding the entire payload (including filename) as a base64 string.
The Challenge: Combining separate parts (boundary header, file content, and boundary footer) into a single base64 string.

Logic Apps doesn’t offer built-in features for this specific task. But fret no more!

The Weapon: C inline code. This powerful tool allows us to manipulate data and craft the desired base64 string.

The Strategy:

1. Prepare three base64 encoded strings – boundary header, file content, and boundary footer.
2. Use C inline code to convert each string into a byte array.

3. Combine these byte arrays into a single one.

4. Convert the combined byte array into a base64 string – our ultimate weapon!

With the base64 string in hand, we can finally use a Logic App Http action to send the multipart/form-data content, complete with our heroically preserved non-ASCII filenames.

This approach allows developers to conquer the limitations of standard methods and ensure flawless handling of filenames across the character spectrum. So, the next time you encounter non-ASCII filename woes in Logic Apps, remember – a base64-encoded payload is your secret weapon!

Sources: Undercode Ai & Community, Internet Archive, Techcommunity.microsoft.com, Digital Innovators Forum, Wikipedia
Image Source: OpenAI, Undercode AI DI v2Featured Image