質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Q&A

解決済

4回答

1356閲覧

URLの入力方法について

aab

総合スコア12

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

0グッド

0クリップ

投稿2017/09/16 13:23

編集2017/09/16 13:33

自分の好きな商品を色々なサイトで検索できるように横断検索にできるSearch at Onceメーカーというサイト(http://shumbo.github.io/Search-at-Once/)でサイトを登録してカスタマイズしたいのですが、その際に【項目を追加】に登録したいサイトのURLを挿入します。
しかし、この時に例えば価格コムを追加して好きな商品を検索する時、表示されるのは複雑な漢字に文字化けしてしまいます。
どういう感じでURLを入力すればいいでしょうか?

専門知識が一切ないのでそのあたりもよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

見てみましたが無理だと思います。

キーワードを Unicode で横断検索するブックマークレットを作成するサイトのようですが、価格.com で使うのは Unicode でなくパーセントエンコーディングされたシフトJISのようです。

ですので、同じようなブックマークレットを作る他のサイトで価格.comに対応したものを見つけるか、自分で作ってください。

投稿2017/09/16 14:59

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

C#

1using System; 2using System.Linq; 3using System.IO; 4using System.Text; 5using System.Web; 6using System.Diagnostics; 7using System.Windows.Forms; 8using System.Threading; 9 10namespace Multi_Search 11{ 12 class Program 13 { 14 static string clipboard = ""; 15 16 static void GetClipboardText() 17 { 18 clipboard = Clipboard.GetText(); 19 } 20 21 static void Main(string[] args) 22 { 23 // search.txtがない場合は終了 24 if (!File.Exists("search.txt"))return; 25 26 // search.txtの読み込み 27 var sr = new StreamReader("search.txt"); 28 var text = sr.ReadToEnd(); 29 sr.Close(); 30 31 // search.txtを1行ずつ分解 32 var urls = text.Split('\n').Select(e => e.Trim('\n').Split(',')); 33 34 // STAでGetClipboardText()を動かさないとクリップボードがとれない 35 var t = new Thread(GetClipboardText); 36 t.SetApartmentState(ApartmentState.STA); 37 t.Start(); 38 t.Join(); 39 40 // クリップボードが空なら終了 41 if (clipboard == "") return; 42 43 // 各行 + clipboardの内容を結合、エスケープして実行 44 foreach(string[] url in urls) 45 { 46 var enc_name = "utf-8"; 47 if (url.Length > 1 && Encoding.GetEncodings() 48 .FirstOrDefault(e => e.Name == url[1]) != null) 49 enc_name = url[1]; 50 var enc = Encoding.GetEncoding(enc_name); 51 Process.Start(url[0] + HttpUtility.UrlEncode(clipboard, enc)); 52 } 53 } 54 } 55}

search.txt

https://www.google.co.jp/search?q= https://teratail.com/questions/search?q= http://kakaku.com/search_results/,shift_jis

作ってみました。
私はブックマークレットを作れないので
コンソールアプリケーションで。
Chromeが既定のブラウザの状態なら複数のタブが開きます。
このsearch.txtの内容だと
Google, teratail, 価格コムの検索結果が
表示されます。
search.txtは

「検索時のurl,文字コード」

と記述します。
正確に動くかどうかは分かりません。

投稿2017/09/17 04:47

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

C#

1using System; 2using System.Text; 3using System.Web; 4using System.Diagnostics; 5 6namespace Test 7{ 8 class Program 9 { 10 static void Main() 11 { 12 var str = "パソコン"; 13 var jis = Encoding.GetEncoding("shift_jis"); 14 var url = HttpUtility.UrlEncode(str, jis); 15 Process.Start("http://kakaku.com/search_results/" + url); 16 } 17 } 18}

Ruby

1require 'uri' 2 3str = 'パソコン' 4url = URI.escape(str.encode('Shift_JIS')) 5system ('start http://kakaku.com/search_results/' + url) 6

ブラウザで価格コムの「パソコンの検索結果」を表示します。
Zuishin様のおっしゃっている方法で可能だと思います。

参考:
URLエンコード、URLデコードを行う
rubyスクリプトからブラウザにウェブページを開く

投稿2017/09/17 00:37

編集2017/09/17 00:43
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

URL(URI)エンコードしたものを使ってみてはどうですか?

投稿2017/09/16 13:29

NCC1701

総合スコア1680

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aab

2017/09/16 13:39

ありがとうございます。 エンコードというものをやってみましたがダメでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問