出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
![]() ![]() ![]() ![]() |
[2588] UTF(?)をSJISに変換する。 |
投稿者:adeosさん 2002/08/30 15:48:36 |
こんにちは、adeosです。 早速質問なのですが、googleなんかで検索を行ったときに、アドレスの中の検索語って %E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A こんな風に表示されますよね。 これをShift-JISに変換して、表示させるにはどうすればよいでしょうか? 今、アクセスログの解析をするプログラムを作っているのですが、どういう検索語でサイトに来たかというのを取得したいのです。 よろしく御願いします。 |
[2590] Re:UTF(?)をSJISに変換する。 |
投稿者:北岳さん 2002/08/30 17:51:35 |
(私は全然詳しくありませんが、) JavaScript の unescape関数で行かないでしょうか。 ネスケですかね。IEで %E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A をunescapeしたら、もっと化けました。 説明を、とほほさんのサイトhttp://tohoho.wakusei.ne.jp/js/index.htm で探してみて下さい。 (ひと月半前に更新されたばかりのホヤホヤ情報がありまして、私はまだよく読んでいませんが、すごい必殺ワザが披露されているようです。) |
[2591] Re:UTF(?)をSJISに変換する。 |
投稿者:adeosさん 2002/08/30 18:45:53 |
お答えありがとうございます。 unescape関数を利用してみましたが、思ったような結果は得られませんでした(涙) スゴイ必殺技は、恐らく以下のページのことだと思います。 http://tohoho.wakusei.ne.jp/wwwxx017.htm これは、IEとネスケでのescape関数の動作の違いを無くしてしまおう、というものみたいです。 私が利用したいのはunescape関数が行うような処理なので、関係なさそうでした。 まだ色々と調べてみます。 ありがとうございました! |
[2593] Re:UTF(?)をSJISに変換する。 |
投稿者:北岳さん 2002/08/30 19:04:45 |
そうでした。 方向が逆であることに気付いて、削除しようかと思いましたが、 先にレスがついたし、別人のご参考になるかもしれないので、まあ残しておきます。 -----------1.htm-------------- <html><body> <script language="JavaScript"> //--- alert("IEの「あいう」変換"); var x="%u3042%u3044%u3046"; alert(x); var y=unescape(x); //■1 alert(y); //--- alert("NNの「あいう」変換"); var x="%82%A2%82%EB%82CD"; alert(x); var y=unescape(x); //■2 alert(y); </script> </body></html> ----------------------------- 自分はIEなので、■1からは「あいう」が得られますが、■2は化けました。 NNだと■1が化けるのでしょうね。タブン。 (ブラウザを2種類持てばいいような気も。。。) |
[2604] Re:UTF(?)をSJISに変換する。 |
投稿者:adeosさん 2002/09/03 9:17:55 |
私がやりたかったのは、Googleなどの検索エンジンで検索したときの検索語を、URLから取得することでした。 色々と探した結果、 http://www.kawabata.com/com/kawabataCom_Url.asp を参考にして検索語を取得することができるようになりました。 ソースは以下の通りです。 -------- 'SWord : エンコードされた検索語(%A4%A2みたいな) 'lngCode : エンコード方式(0:自動,5:UTF-8(Google)) 'エンコード方式はBASP21のKConvに倣って Function WordDecord (SWord, lngCode) HexWord = "" Position = 1 strUrlAny = SWord WordSize = Len(SWord) Set bobj = Server.CreateObject ("basp21") Do While Position <= WordSize Chara = Mid(SWord, Position, 1) If Chara = "+" Then strHex = Hex(AscB(" ")) Position = Position + 1 ElseIf Chara <> "%" Then strHex = Hex(AscB(Chara)) Position = Position + 1 Else strHex = Mid(strUrlAny, Position + 1, 2) Position = Position + 3 End If HexWord = HexWord & strHex Loop If HexWord <> "" Then byteAny = bobj.ByteArray(HexWord, 1) WordDecord = bobj.KConv(byteAny, 4, lngCode) End If Set bobj = Nothing End Function ------- 以上です。 ありがとうございました。 |
TreeBBS For ASP V.0.1.3 |