現状
VBAでAPIを動作させたいと思っています。
下記コードを起動したところ、送信結果は正常となるのですが、
送信したファイルの文字コードがUTF-8と認識されてしまいます。
実現したいこと
送信したファイルの文字コードをshift_jisになって欲しい。
発生している問題・エラーメッセージ
エラー自体は表示されません。 送信したファイルがUTF-8と認識されて、文字化けのデータが登録されます。
該当のソースコード
VBA
1Sub btnPost_Click() 2 3'リクエスト先のURL 4Dim strBaseURL As String 5strBaseURL = "---------------------------------------" 6 7'APIトークン 8Dim strToken As String 9strToken = "---------------------------------------" 10 11'CSVファイルパス 12Dim strCSVFilePath As String 13strCSVFilePath = "---------------------------------------" 14 15'境界値(multipart/form-data用) 16Dim strBoundary As String 17strBoundary = "OGNmIIVqsa4T8ZFVDLZ1QpR-Cf2xK45" 18 19With httpReq 20 .Open bstrmethod:="POST", bstrUrl:=strBaseURL 21 .SetRequestHeader "X-WB-apitoken", strToken 22 .SetRequestHeader "Content-Type", "multipart/form-data; boundary=""" & strBoundary & """" 23 24 Dim strParams 25 strParams = vbCrLf 26 strParams = strParams + "--" + strBoundary + vbCrLf 27 strParams = strParams + "Content-Disposition: form-data; name=""json""" + vbCrLf 28 strParams = strParams + "Content-Type: application/json; charset=shift_jis" + vbCrLf 29 strParams = strParams + vbCrLf 30 strParams = strParams + "--" + strBoundary + vbCrLf 31 strParams = strParams + "Content-Disposition: form-data; name=""files[0]""; filename=""試験.csv""" + vbCrLf 32 strParams = strParams + "Content-Type: text/csv; charset=shift_jis" + vbCrLf 33 strParams = strParams + vbCrLf 34 35 Dim objCSVStream As Variant 36 Set objCSVStream = CreateObject("ADODB.Stream") 37 With objCSVStream 38 .Charset = "shift_jis" 39 .Open 40 .LoadFromFile = strCSVFilePath 41 .Position = 0 42 Do Until .EOS 43 strParams = strParams + .ReadText() 44 Loop 45 .Close 46 End With 47 strParams = strParams + "--" + strBoundary + "--" 48 .Send strParams 49End With 50 51Do While httpReq.readyState < 4 52 DoEvents 53Loop 54Debug.Print httpReq.responseText, , "レスポンス結果" 55 56End Sub
試したこと
文字コードが設定できる個所はshift_jisを設定してみました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。