ビックカメラやヨドバシカメラの検索結果を含むリンクを作る場合、そのサイトに応じた文字コードの対応が必要になります。
ヨドバシカメラの場合は、UTF8なのでそのまま使えますが、ビックカメラの場合はSJISなので変換が必要です。
そのためには、 encoding-japanese ライブラリを使います。CDN(encoding-japaneseライブラリ)で提供されています。
HTMLのHEADER内で encoding-japanese ライブラリを読み込む
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/encoding-japanese/2.0.0/encoding.min.js"></script>
</head>
ヨドバシカメラの場合(普通の場合)
var href = "https://www.yodobashi.com/?word=";
href += encodeURIComponent( key );
ビックカメラの場合(検索クリエがSJISの場合)
var href = "https://www.biccamera.com/bc/category/?q=";
var sjis_array = Encoding.convert( Encoding.stringToCode(key), 'SJIS' );
key = Encoding.urlEncode(sjis_array);
href += key;
keyは関数の引数で渡されるとするEncoding.stringToCode(key)で、文字列keyから文字コード値の配列にしますEncoding.convertで、SJISの文字コード配列に変換します(数値配列)Encoding.urlEncodeで、文字コード配列を%82%A0のようなパーセントでエンコードされた文字列に変換し、通常のURLリンク文字にします
参考
- GitHub - polygonplanet/encoding.js: Convert and detect character encoding in JavaScript
- encoding-japaneseライブラリ (CDN)
- encoding.js/README_ja.md at master · polygonplanet/encoding.js
2023/12/09