EUCに変換する方法
投稿者 (削除されました)  ()
投稿日時
2009/5/16 04:20:06
(削除されました)
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2009/5/16 04:32:16
> 変換しなくてもOKみたいです。
いいえ、それはたまたまうまく行っただけです。そのまま繋げてはいけません。
たとえば、「=」「&」などの文字が含まれていた場合、その方法では正しく
検索できなくなりますし、日本語の文字などを直接渡すと、文字コード判定に
失敗した場合に、別の文字とみなされてしまう事もあります。URL に渡す文字列は、
Dim query As String = Uri.EscapeDataString(Text)
などとして事前に変換するようにしましょう。
これは、どのサイトの URL を指定する場合にも言えることです。
> Yahoo! 検索を使うには「EUC」とか言う文字エンコードに変換する必要があるみたいです。
EUC への変換には、System.Text.Encoding を利用する事ができます。
しかし、検索に文字コード変換が必ず必要か、というとそうでもありません。
Google や Yahoo! の検索用 URL には、文字コード指定用のパラメータが用意されているからです。
Dim url As String = "http://search.yahoo.co.jp/search?fr=yjdnqp&ei=UTF-8&p=" & query
Yahoo! の場合は ei がそれにあたります。各パラメータの意味については、下記で確認してください。
http://developer.yahoo.co.jp/other/query_parameters/search/websearch.html
この他、検索結果を直接データとして受け取るための API も用意されています。
興味があれば、これらの方法についても調べてみてください。
http://developer.yahoo.co.jp/webapi/search/websearch/v1/websearch.html
http://www.google.com/apis/
いいえ、それはたまたまうまく行っただけです。そのまま繋げてはいけません。
たとえば、「=」「&」などの文字が含まれていた場合、その方法では正しく
検索できなくなりますし、日本語の文字などを直接渡すと、文字コード判定に
失敗した場合に、別の文字とみなされてしまう事もあります。URL に渡す文字列は、
Dim query As String = Uri.EscapeDataString(Text)
などとして事前に変換するようにしましょう。
これは、どのサイトの URL を指定する場合にも言えることです。
> Yahoo! 検索を使うには「EUC」とか言う文字エンコードに変換する必要があるみたいです。
EUC への変換には、System.Text.Encoding を利用する事ができます。
しかし、検索に文字コード変換が必ず必要か、というとそうでもありません。
Google や Yahoo! の検索用 URL には、文字コード指定用のパラメータが用意されているからです。
Dim url As String = "http://search.yahoo.co.jp/search?fr=yjdnqp&ei=UTF-8&p=" & query
Yahoo! の場合は ei がそれにあたります。各パラメータの意味については、下記で確認してください。
http://developer.yahoo.co.jp/other/query_parameters/search/websearch.html
この他、検索結果を直接データとして受け取るための API も用意されています。
興味があれば、これらの方法についても調べてみてください。
http://developer.yahoo.co.jp/webapi/search/websearch/v1/websearch.html
http://www.google.com/apis/
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2009/5/16 04:53:37
> この他、検索結果を直接データとして受け取るための API も用意されています。
> 興味があれば、これらの方法についても調べてみてください。
> http://developer.yahoo.co.jp/webapi/search/websearch/v1/websearch.html
Yahoo! 版のサンプルを掲載しておきます。(実行には、アプリケーションID が必要です)
> 興味があれば、これらの方法についても調べてみてください。
> http://developer.yahoo.co.jp/webapi/search/websearch/v1/websearch.html
Yahoo! 版のサンプルを掲載しておきます。(実行には、アプリケーションID が必要です)
'TextBox、DataGridView、Button を配置してください。
Public Class Form1
'ここには、取得した Yahoo! 用の アプリケーションIDを指定します。
Private Const AppID As String = ************
Private BaseURL As String = "http://search.yahooapis.jp/WebSearchService/V1/webSearch?query={0}&appid=" & AppID
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Dim ds As New DataSet()
ds.ReadXml(String.Format(BaseURL, Uri.EscapeUriString(TextBox1.Text)))
DataGridView1.DataSource = ds.Tables("Result")
End Sub
'Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
' Dim c As New DataGridViewLinkColumn()
' c.Name = "Url"
' c.DataPropertyName = "Url"
' DataGridView1.Columns.Add(c)
'End Sub
End Class
投稿者 トマト  (小学生)
投稿日時
2009/5/17 18:18:43
ありがとうございます。
>いいえ、それはたまたまうまく行っただけです。
Googleでは、「sss」とか「あ」などで検索のテストをしていました。
さっそくテストしようと思ったら、エラー一覧に17のエラーが出ていたので、
修正してからテストしてみます。
>いいえ、それはたまたまうまく行っただけです。
Googleでは、「sss」とか「あ」などで検索のテストをしていました。
さっそくテストしようと思ったら、エラー一覧に17のエラーが出ていたので、
修正してからテストしてみます。
投稿者 トマト  (小学生)
投稿日時
2009/5/17 19:27:37
ei=Shift_JIS に変えたらちゃんと動きました。
ありがとうございました。
ありがとうございました。
投稿者 (削除されました)  ()
投稿日時
2009/5/18 03:19:30
(削除されました)
何度もすみません。
インターネット検索をする機能を作りたいのですが、
Yahoo! 検索を使うには「EUC」とか言う文字エンコードに変換する必要があるみたいです。
変換する方法を教えてください。
ついでにGoogleは、こんな感じでOKでした。
変換しなくてもOKみたいです。