出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

UTF(?)をSJISに変換する。   adeosさん [2002/08/30 15:48:36] [2588]
  Re:UTF(?)をSJISに変換する。   北岳さん [2002/08/30 17:51:35] [2590]
    Re:UTF(?)をSJISに変換する。   adeosさん [2002/08/30 18:45:53] [2591]
      Re:UTF(?)をSJISに変換する。   北岳さん [2002/08/30 19:04:45] [2593]
        Re:UTF(?)をSJISに変換する。   adeosさん [2002/09/03 9:17:55] [2604]

[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
Program By YasNet