ブラウザのアドレスに直接入力すると全角がSJISとしてurlencodeされてしまうので(WinVista+Firefox)自分用スクリプトを書いてみた。今まではbinにurlencode.phpというシェル用スクリプトを置いて、変換したのをブラウザにコピペしていた。
<?php $_encodes = array('UTF-8', 'EUC-JP', 'Shift_JIS'); if (isset($_GET['url'])) { $url = urldecode($_GET['url']); $p = @parse_url($url); if ($p === false) { die("parse failed."); } $api = $p['scheme'] . '://' . $p['host'] . (isset($p['port']) ? ':' . $p['port'] : '') . $p['path']; if (isset($p['query'])) { parse_str($p['query'], $param); $api .= '?'; $encode = in_array($_GET['encode'], $_encodes) ? $_GET['encode'] : 'UTF-8'; foreach ($param as $key => $value) { $api .= $key . '=' . urlencode(mb_convert_encoding($value, $encode, 'UTF-8')) . '&'; } } header("Location: $api"); exit; } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>api test</title> </head> <body> <div>api url, oe</div> <form action="" method="GET" target="_blank"> <input type="text" name="url" style="width: 60em;" /> <select name="encode"> <?php foreach ($_encodes as $e) : ?> <option value="<?=$e?>" /><?=$e?> <?php endforeach; ?> </select> <input type="submit" value="submit" /> </form> <div style="text-align: right; font-size: 70%; color: #999;">developed by <a href="http://blog.zuzara.com/">funaki</a></div> </body> </html>
One Trackback
[...] zuzara : APIのレスポンスお試し用ツール 拙作。ソースを公開。URLを入れて文字エンコードを適切に変換するだけの簡易ツール。 [...]