• ベストアンサー

VB.NETでタブブラウザを作成しているのですが

こんばんは。 現在VB.NETでタブブラウザを作成してルのですが、どうすれば良いか分からない部分があります。 プログラムによって新しく作ったtabpage内にAxwebbrowseを表示させそのページをアクティブにするまではできたのですが、そのAxwebbrowseをtabpage内いっぱいまで広げる方法がわかりません(どの場面で指定すればよいかがわかりません)。Dock.Fillでできるとは思うのですがやり方がわからないのです。他の方法でも良いのでアドバイスいただけませんか? もう1つ質問がありまして、アドレスバーに最初の7文字が「http://」ではない場合IEと同じようにmsnの検索ページに飛ぶようにしているのですが、"a"のような英字や数字の場合は問題なく検索ページに飛びアドレスバーに入力した文字で検索した結果が表示されるのですが、ひらがなや漢字が含まれていると検索できません。 IEで同じことをすると"あ"という文字が"%e3%81%82"というのに変換されているのは分かっているのですがプログラム内で変換する方法というか、どういう変換がされているのか分かりません。 こちらもどなたかアドバイスをいただけないでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

>これはUTF-8だと思うのですがそれをEUCに変換するには >上記のコードをいじれば良いのでしょうか? UrlEncodeメソッドの2つめの引数に、Encodingオブジェクトを指定すれば そのエンコードになります。 ただ、EUCはEncodingクラスのプロパティに用意されていないので GetEncodingで指定する必要があります。

yksin
質問者

お礼

ありがとうございました。 できました。 Dim check As String check = System.Web.HttpUtility.UrlEncode(ComboBox1.Text, _ System.Text.Encoding.GetEncoding(51932)) 上記コードで動いてくれました。どうもありがとうございました。

その他の回答 (2)

回答No.2

>"あ"という文字が"%e3%81%82"というのに変換されている こういった変換はurlエンコードといいます。 .net であれば、HttpUtilityクラスのUrlEncodeメソッドを 使えばよいでしょう。

yksin
質問者

お礼

ありがとうございました。 HttpUtilityクラスを使うときにはsystem.web.DLLを追加しないと機能しないのですね。 dim a as string a=System.Web.HttpUtility.UrlEncode(combobox1.txt) でなんとか"あ"という文字を"%e3%81%82"に変換できました。 これはUTF-8だと思うのですがそれをEUCに変換するには上記のコードをいじれば良いのでしょうか?それとも別の処理が必要なのでしょうか?

  • nitscape
  • ベストアンサー率30% (275/909)
回答No.1

VCで似たようなことをやったことがあります。VBではないので全く同じではないのですが... "%e3%81%82"のものは16進数をアスキーに変換したもので、&he3&h81&h82という3バイトを表しています。これに変換したURLをきちんと作らないと漢字は検索できません。 変換方法は単にアスキー表示するだけなのですが...検索エンジンによってSJISだったりUTF8だったりします。VBの中で漢字はUnicodeなのでこれをSJISやUTF8に変換する必要があります。変換するにはIMultiLangageというCOMコンポーネントを使うと楽です。

yksin
質問者

お礼

回答ありがとうございます。 16進数をアスキーに変換したものなんですか。 文字を16進数に変換する方法はAscwでunicodeに変換しHexで16進数に変換するくらいしか知りません。 今の状態では"あ"=3042(16進)という値を得ています。 この値を変換すれば良いのでしょうか? >変換するにはIMultiLangageというCOMコンポーネントを使うと楽です。 すみません全く使い方がわかりません、検索したのですがよく分かりませんでした。使い方を紹介しているようなサイトをご存知ならば教えていただけませんか?

yksin
質問者

補足

補足ではないですが自己レスです。 Axwebbrowseをtabpage内いっぱいまで広げる方法は自己解決できました。 単純に Dim bw As New AxSHDocVw.AxWebBrowser bw.Dock = DockStyle.Fill で良かったのですね。 引き続き2つ目の質問のアドバイスをどなたかしていただけませんか?よろしくお願いします。