日本語をクエリで送信できるようにするには2つのエンコードが必要です。
まず最初に自分のサイトで使用している文字コードとリンク先のサイトで使用している文字コードを一致させなければいけません。どの文字コードを使用しているかはブラウザから確認できます。IEの場合、「表示 > エンコード」から見ることが出来ます。文字コードが異なる場合は mb_convert_encoding 関数で変換します。mb_convert_encoding("変換する文字列"‚ "変換後の文字コード"‚ "変換前の文字コード")自分のサイトがSJISでリンク先がEUC-JPの場合
僕が使っているサーバーとドメイン管理のレジストラーです。
§2つのエンコード
日本語をクエリで送信できるようにするには2つのエンコードが必要です。
日本語エンコードとURLエンコード
まず最初に自分のサイトで使用している文字コードとリンク先のサイトで使用している文字コードを一致させなければいけません。
どの文字コードを使用しているかはブラウザから確認できます。
IEの場合、「表示 > エンコード」から見ることが出来ます。
文字コードが異なる場合は mb_convert_encoding 関数で変換します。
mb_convert_encoding("変換する文字列"‚ "変換後の文字コード"‚ "変換前の文字コード")
自分のサイトがSJISでリンク先がEUC-JPの場合
$KeyWord="キーワード";
$KeyWord=mb_convert_encoding($KeyWord‚ "EUC-JP"‚ "SJIS");
?>
となります。
また変換前の文字コードに「auto」を使用することも出来ます。
autoにしておけば自分のサイトの文字コードを気にする必要はありません。
もう一つのエンコードはURLエンコードです。
URLエンコードはクエリで送信できない文字を自動的に変換してくれる関数です。
これをしておかないと意図しない検索結果になる場合があります。
urlencode("変換する文字列")
さてこの2つのエンコードを使ってYahooへの検索結果リンクを作ってみましょう。
$KeyWord="任意のキーワード";
$KeyWord=mb_convert_encoding($KeyWord‚ "EUC-JP"‚ "auto");
$EncodeKeyWord=urlencode($KeyWord);
$URL="http://search.yahoo.co.jp/search?fr=slv1-wave&p={$EncodeKeyWord}";
print"<a href='{$URL}' target='_blank'>{$KeyWord}</a>";
?>
アフィリ用に生成されたリンク内のキーワードを入れ替える場合、URLエンコードが2重にかかっている事があります。
この場合、
としなければいけません。