|
いつもお世話になっております。下記御存じの方がいらっしゃいましたら、ご教示頂きますようお願いします。
■質問
関数の引数(ByVal xxx As String)にUTF−8の文字列を渡す方法をご教示下さい。
尚、文字列の入力元はワークシートのセルの内容です。
■背景
ブラウザから手動でhttpコマンド(※1)を叩く試験を、マクロ化しようとしています。
コマンド送信は出来るのですが、ブラウザから実行する場合とマクロから実行する場合で
文字コードに違いがあるようです。(※2)
試験内容を変えずにマクロ化する必要があるので困っています。
※1 開発している装置に送るコマンドと戻りがhttp。
イメージ: http://10.10.2.3/set_xxx?xxx=1 とブラウザのURL欄に入力すると、
result=OK と記載されたWebページが表示される。
※2 ブラウザのURL欄に入力するとUTF−8で下記コマンドを実行
http://10.10.2.3/set_yyy?yyy=あいう (意味:パラメータyyyに「あいう」を設定)
http://10.10.2.3/get_yyy (意味:パラメータyyyを取得)
→ ブラウザから実行した場合は、 yyy=%e3%81%82%e3%81%84%e3%81%86 が返る。(UTF−8)
マクロから実行した場合は、 yyy=%82%a0%82%a2%82%a4 が返る。(S−JIS)
■補足
下記APIを使用してhttpコマンドを実行しています。
Private Declare Function httpOpenRequest _
Lib ”wininet.dll” _
Alias ”httpOpenRequestA” _
(ByVal hConnect As Long _
, ByVal lpszVerb As String _
, ByVal lpszObjectName As String _ ← ここがURL
, ByVal lpszVersion As String _
, ByVal lpszReferer As String _
, ByVal lpszAcceptTypes As Long _
, ByVal dwFlags As Long _
, ByVal dwContext As Long) As Long
「ERROR:本文に禁止語句が含まれています。」
と表示されたので、全て全角に変換しています。
変換前は、英数は半角です。。
以上です。
|
|