webAPIでファイルアップロードした際にファイル名の日本語部分のみ文字化けしてしまう
解決したいこと
webAPIでファイルをアップロードした際、
ファイル名の日本語部分のみ文字化け(?????)してしまいました。
APIはPower Automateで実行しており、添付ファイルはsharepointドキュメントから取得しております。
エンコードなど色々試しましたが失敗しました。
分かる方いましたらご教示ください。
webAPIでファイルをアップロードした際、
ファイル名の日本語部分のみ文字化け(?????)してしまいました。
APIはPower Automateで実行しており、添付ファイルはsharepointドキュメントから取得しております。
エンコードなど色々試しましたが失敗しました。
分かる方いましたらご教示ください。
WebAPIの仕様はわかりませんが、Content-Disposition
に指定する値がHTTPに準拠しているのであればfilename
ではなくfilename*で指定してみてはいかがでしょうか?
filename*=UTF-8''111111-%E6%9B%B8%E9%A1%9E%E5%90%8D.pdf
webAPIでファイルをアップロードした際、ファイル名の日本語部分のみ文字化け(?????)してしまいました。
意味が分かりません。ブラウザからある Web API にファイルをアップロードすると、Web API 側で受け取ったファイル名が日本語だと文字化けすると言ってます?
APIを発行しているアクションの定義部分を開示できるでしょうか?
Power Automate はクラウド版ですか、Desktop版ですか?
@MAAY
Questioner
@nak435 様
Power Automateクラウド版です。
HTTPアクションにてAPI(POST)を使っています。
こちらの画像で内容分かりますでしょうか?
(以前ご教示頂いたJSONの解析の内容を一部使用しております)
文字化けしているのは、上記の「添付資料」部分でしょうか?
変数だと思いますが、この変数を設定しているアクションの定義部分を開示できますでしょうか?
Power AutomateはUTF-8ですが、ファイル名の文字コードの問題か、変数の設定まわりの問題と想定します。
@MAAY
Questioner
変数「列配列」の元は、JSONオブジェクトですよね。
文字化けですが、ぜんぜん読めない意味不明の文字に化けていますか?
それとも、URLエンコードしたような、英字数字列でしょうか?
試しに、変数の設定でencodeUriComponent
関数をかますとどうでしょうか?
「添付書類」encodeUriComponent(variables('列配列')?[11])
@MAAY
Questioner
@nak435 様返信が遅くなりすみません。
変数「列配列」の元は、JSONオブジェクトですよね。→そうです
下のようなファイル名表示になっていました。
「111111-?????.pdf」
?部分が日本語で「書類名」出る予定でした。
エンコードされたようなものではなかったです。
アップロードしたものを再度開いてみると、中身は壊れていなかったのですが・・・
諸事情により数日間Power Automateで試せる環境がないのですが、
実はencodeUriComponent関数をかます方法もチャレンジしていました。
結果が「111111-%E6%9B%B8%E9%A1%9E%E5%90%8D.pdf」になってしまい、エンコードされたものがそのまま表示されているようなファイル名になってしまいました。
不慣れで内容の説明が拙く申し訳ございません…
実はencodeUriComponent関数をかます方法もチャレンジしていました。
結果が「111111-%E6%9B%B8%E9%A1%9E%E5%90%8D.pdf」になってしまい、
encodeUriComponentかますと、↑こうなりますね。getならともかくpostなので、可能性は低いなとは思っていました。
「111111-?????.pdf」
サーバに送信したHTTPリクエストの中身を見るしかありませんが、POSTのボディにこのファイル名が正しくエンコードされているなら、文字化けの理由がサーバに有る可能性があります。
Power Automateの実行ログから送信したPOSTのボディを確認できるのか???