| 
    
     |  | いつもお世話になっております。下記御存じの方がいらっしゃいましたら、ご教示頂きますようお願いします。 
 ■質問
 関数の引数(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:本文に禁止語句が含まれています。」
 と表示されたので、全て全角に変換しています。
 変換前は、英数は半角です。。
 
 以上です。
 
 |  |