皆様いつもお世話になっております。
エディットボックスに検索語を入力してボタンをクリックして、検索語をGoogleに与えて結果を表示するにはどうしたらいいのでしょうか。表示はWebBrowserです。いまは次のように作って表示されたGoogleの画面に入力しています。(#スマートではないです)
検索エンジンについて探したのですが、各社エンコードの方法が違うとか難しいことを書いてあり理解できませんでした。とてつもなく難しいことなのかわかりません。
どうぞご指導いただけませんでしょうか。お願いいたします。m(_ _)m
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.google.co.jp/search?q');
end;
日本語を「URLエンコード」すればよいです。
HTTPApp ユニットの HttpEncode, HttpDecode がそれですが、
Delphi6 パーソナルにあるかは分かりません。
http://www.bousaid.que.jp/memo/php/urlencode.php
googleはUTF-8ですね。
D6ならUTF8Encodeはあるらしいです
Edit1.Text:=HttpEncode(UTF8Encode('あ'));
無い場合はこちらを使用してみるのは如何でしょうか。
http://homepage3.nifty.com/m-and-i/tips/utftosjis.htm
サーバーで自動認識してそうなので
文字コード関係なさそうですよ
全角でいれてみて
どちらも同じ結果が表示されました。
スペースとか考えると面倒でしょうから
きにせず全部16進でわたしちゃえばいいかと
function searchText(s:string):string;
var i:integer; r :string;
begin
r :='';
for i:=1 to length(s) do
begin
r:= r +'%'+ Format('%.2x',[byte(s[i])]) ;
end;
Result := r;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.google.co.jp/search?q='
+searchText(Edit1.Text));
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
WebBrowser2.Navigate('http://www.google.co.jp/search?q='
+searchText(AnsiToUtf8(Edit1.Text)));
end;
Googleは、何度か仕様を変えています。
以前も、SJISで通っていたはずが、UTF-8のみ(ie,oeパラメータで若干対応可能)に変更されました。
# これで泣いたタブブラウザ利用者もいるはず
暗黙の了解で直接渡すよりも、UTF-8に直してからの方がよいです。
UTF-8は変更にならない、ということではありませんが、使えたり使えなかったりしたSJISのままよりはいいかと思います。
co-op 様、大豆くん様、にしの 様、ご教授有り難うございました。
各社違う規格だったり、変更したりしたようなことを書いてありますね。
そうすると、プログラムに固定のコードで組み込むより、設定で変更できるようにしなくてはなりませんね。
勉強になりました。お礼を申し上げます。m(_ _)m
ツイート | ![]() |