Title: Invoke-RestMethod Multipart/Form-Data Filename encoding with non-ascii chars · Issue #19456 · PowerShell/PowerShell · GitHub
Open Graph Title: Invoke-RestMethod Multipart/Form-Data Filename encoding with non-ascii chars · Issue #19456 · PowerShell/PowerShell
X Title: Invoke-RestMethod Multipart/Form-Data Filename encoding with non-ascii chars · Issue #19456 · PowerShell/PowerShell
Description: Prerequisites Write a descriptive title. Make sure you are able to repro it on the latest released version Search the existing issues. Refer to the FAQ. Refer to Differences between Windows PowerShell 5.1 and PowerShell. Steps to reprodu...
Open Graph Description: Prerequisites Write a descriptive title. Make sure you are able to repro it on the latest released version Search the existing issues. Refer to the FAQ. Refer to Differences between Windows PowerSh...
X Description: Prerequisites Write a descriptive title. Make sure you are able to repro it on the latest released version Search the existing issues. Refer to the FAQ. Refer to Differences between Windows PowerSh...
Opengraph URL: https://github.com/PowerShell/PowerShell/issues/19456
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Invoke-RestMethod Multipart/Form-Data Filename encoding with non-ascii chars","articleBody":"### Prerequisites\n\n- [X] Write a descriptive title.\n- [X] Make sure you are able to repro it on the [latest released version](https://github.com/PowerShell/PowerShell/releases)\n- [X] Search the existing issues.\n- [X] Refer to the [FAQ](https://github.com/PowerShell/PowerShell/blob/master/docs/FAQ.md).\n- [X] Refer to [Differences between Windows PowerShell 5.1 and PowerShell](https://docs.microsoft.com/powershell/scripting/whats-new/differences-from-windows-powershell).\n\n### Steps to reproduce\n\nI am using the invoke-restmethod to do a Multipart/Form-Data Submission using the -Form parameter.\r\nThe form date also includes a file.\r\n`$DocumentUploadForm = @{`\r\n ` file = Get-Item $DocumentFile`\r\n `title = \"$DocumentTitle\"`\r\n \r\nWhen the filename contains just ascii chars the filename is encoded as expected in the request body.\r\nHowever when the filename contains non-ascii chars the filename is encoded as per RFC-1342 which is unexpected.\r\nI have compared the behavior to the CURL application and there the filename is encoded differently using unicode codepoints.\n\n### Expected behavior\n\n```console\nRequest Body for file with non-ascci chars in the filename:\r\n\r\n...\r\n--------------------------748339ec18b72df1\r\nContent-Disposition: form-data; name=\"file\"; filename=\"t\\xcc\\x88stfile.pdf\"\r\nContent-Type: application/pdf\r\n\r\n%PDF-1.7\r\n...\r\n\r\nRequest Body for file with only ascii chars in the filename:\r\n\r\n...\r\n--------------------------748339ec18b72df1\r\nContent-Disposition: form-data; name=\"file\"; filename=\"testfile.pdf\"\r\nContent-Type: application/pdf\r\n\r\n%PDF-1.7\r\n...\n```\n\n\n### Actual behavior\n\n```console\nRequest Body for file with non-ascci chars in the filename:\r\n\r\n...\r\n--------------------------748339ec18b72df1\r\nContent-Disposition: form-data; name=\"file\"; filename=\"=?utf-8?B?S3XMiG5kaWd1bmdfTXVzdGVybWFubl9NYXguVFRBXzIwMjNfMDFfMzAucGRm?=\"\r\nContent-Type: application/pdf\r\n\r\n%PDF-1.7\r\n...\n```\n\n\n### Error details\n\n```console\nThere is no error in the powershell, but the server does not accept the POST request containing this filename encoding.\r\nThe server does accept a the POST request created by CURL.\r\nThe only difference is the encoding auf the filename.\r\nEither with unicode codepoints or with RFC-1342\n```\n\n\n### Environment data\n\n```powershell\nName Value\r\n---- -----\r\nPSVersion 7.3.3\r\nPSEdition Core\r\nGitCommitId 7.3.3\r\nOS Darwin 22.4.0 Darwin Kernel Version 22.4.0: Mon Mar 6 20:59:58 PST 2023; root:xnu-8796.101.5~3/RELEASE_ARM64_T6020\r\nPlatform Unix\r\nPSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}\r\nPSRemotingProtocolVersion 2.3\r\nSerializationVersion 1.1.0.1\r\nWSManStackVersion 3.0\n```\n\n\n### Visuals\n\n_No response_","author":{"url":"https://github.com/joergrenn","@type":"Person","name":"joergrenn"},"datePublished":"2023-04-05T15:38:36.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":17},"url":"https://github.com/19456/PowerShell/issues/19456"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:478c43ed-132e-e8ed-9349-832a2ec9e779 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | B7A0:E6EAB:C836CA:10E91EF:6A555F93 |
| html-safe-nonce | 7ae550b08031cd52fddb0b6165047a5475d7fd6e29dcba69a8171597c9a2f7ac |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCN0EwOkU2RUFCOkM4MzZDQToxMEU5MUVGOjZBNTU1RjkzIiwidmlzaXRvcl9pZCI6Ijc2NzUyNTc1MTkyNDY0OTk3MzEiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 08d4454a5d075ed35108e61d8b699bdc8d08c53773291049b99ae8d3787e1286 |
| hovercard-subject-tag | issue:1655863716 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/PowerShell/PowerShell/19456/issue_layout |
| twitter:image | https://opengraph.githubassets.com/6edd7f44e52bd56b3e412e5aa53721fbf1534694c965781d6c2dfae455b9828a/PowerShell/PowerShell/issues/19456 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/6edd7f44e52bd56b3e412e5aa53721fbf1534694c965781d6c2dfae455b9828a/PowerShell/PowerShell/issues/19456 |
| og:image:alt | Prerequisites Write a descriptive title. Make sure you are able to repro it on the latest released version Search the existing issues. Refer to the FAQ. Refer to Differences between Windows PowerSh... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | joergrenn |
| hostname | github.com |
| expected-hostname | github.com |
| None | b5665c84831ed9ac4fb79519c16c9c5580ba8092fb8bb6e3e72972ec7197348e |
| turbo-cache-control | no-preview |
| go-import | github.com/PowerShell/PowerShell git https://github.com/PowerShell/PowerShell.git |
| octolytics-dimension-user_id | 11524380 |
| octolytics-dimension-user_login | PowerShell |
| octolytics-dimension-repository_id | 49609581 |
| octolytics-dimension-repository_nwo | PowerShell/PowerShell |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 49609581 |
| octolytics-dimension-repository_network_root_nwo | PowerShell/PowerShell |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 73595e82546ca2415571a2031890ab16ecb3001a |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width