PHPで、UTF8の文字列を、Shift-jisの何かに変換する方法がわかりません。
例えば「地方」という文字列を
「%92%6E%95%FB」
に変換したいです。
補足Aと、補足Bを下に追加しました。
①
以下の様にbin2hexを使うと、「926E95FB」となり、「%」が含まれていません。
php
1<?php 2$str = '地方'; 3echo strtoupper(bin2hex(mb_convert_encoding($str,"CP932"))); 4?>
②
以下の様にURLエンコードすると、「%92n%95%FB」となり、微妙に異なります。
php
1<?php 2$str = '地方'; 3echo urlencode(mb_convert_encoding($str, 'SJIS', 'UTF-8')); 4?>
どのように処理すれば、「%92%6E%95%FB」へ変換できますでしょうか。
◆補足A
具体的には、このサイト(e-hon)のキーワード検索です。
このサイトはシフトJISで、検索すると質問したような変換が行われています。
◆補足B
http://charset.7jp.net/urlchg.html
このサイトで、
・Shift-JIS
・全文字変換(16進ダンプ)
・1バイト毎
とすれば、期待する変換が行われるのですが、PHPで同じ処理をする方法がいろいろ試してもわからなくて質問しました。

回答1件
あなたの回答
tips
プレビュー