さっきまでクライアントでMD5ハッシュを生成して、サーバーに送るようなものを書いてた。
バリバリAjax使ってますよ。MD5の生成は
http://www.onicos.com/staff/iz/amuse/javascript/expert/
のmd5.jsを使わせてもらった。MD5の理屈はえらく複雑だったんでね。
理屈は、非同期でサーバーで毎回一づつ足される値をBase64でエンコードしたものをもらってくる。
サーバーにはセッションとして保存しておくわけだ。Cookieと違って改ざんのしようはないはず。
それでこれとパスワードをくっつけたやつのMD5ハッシュを取って非同期で送信。
照合して、OKかNGか返して、セッションは削除。受け取ったら表示して終わり。
というわけで面白そうなのでメモメモ。あ、Ajax周りではprototype.js使ってるよ。
あとレポート提出してきた。後で見ておくよといってた。ふぅ…
ところで、今日ちょっとした決断を。
自分の書くドキュメントの文字エンコードをこれからはUTF-8を基本にしようかなと。
事実、Libserverの一部、部活のサーバーのすべて(Indexだけだけど)はUTF-8です。
fdiaryはめんどくさいんで移行するつもりはないけど、IndexとエラーページはUTF-8です。
掲示板もfdiaryのシステムもUTF-8に移植したのを使う気満々ですよ。
で、テキストエディタにはTeraPadを使っておりますけど、実はちょっと問題が。
まぁ設定で簡単に、初期文字コードをUTF-8Nに変更できました。
ちなみにUTF-8NはBOMのないUTF-8、まぁUTF-8としてはこれが一番いいんじゃないかなと。
BOMがあると誤動作を起こす場合もあるわけで。
もっともBOMのEF BB BFから始まるのならUTF-8とかいうのがわかるのは確かなんだけど。
しかし、ASCIIの範囲で書かれた文章がありましたと。
この文章を開くとShift_JISとして認識してしまいます。
まぁ確かにEUC-JPでもShift_JISでもUTF-8でもASCIIの文字の書き方は大体同じですからね。
‘1’はどれでも0x31だしね。見分けがつかないわけだ。
となるとUTF-8を選んでくれるとうれしいんだけど、どうもその辺は変更できないみたい。
一応自動認識をOFFにすれば強制的にそうなるはずだけど、
そうすると数あまたのEUC-JPとShift_JISの文章を読むたびに変更がいる。
んなめんどくさい。
どうにかならんかーって報告しようかね?
というわけでそのパターンのときは文字コード指定再読み込みでUTF-8を選択すればいいかと。
まぁASCIIの範囲の文章に書き足すのも8割方ASCIIの範囲の文字だけだし。
ところでUTF-8を使う理由はWebのこと以外理由はありませんよ。
というのが本音だけど、かっこよく言えば、VistaからはUnicode系のエンコードじゃないと困ることがあるとか。
僕は第一水準漢字で済むような文章しか書いてない気がするけどさ…
まぁそりゃともかく、一部Unicodeしかあらわせない文字がVistaからは普通に扱えるようになるよということ。
確かにそのときに変わるよりはいいかもね。
ただ、一応UTF-8はメモ帳でも開けます。
そんな背景があるのでWindowsユーザーにもEUC-JPよりは使いやすいんじゃないかな?
まぁWindowsユーザーにはEUC-JPはなんとなく不評だと思うけど。
ちなみにWindowsのメモ帳でUTF-8の文章を保存することは、保存先を選ぶときに文字コードでUTF-8を選択すればいい。
標準はANSIになってるな。単純に言えばShift_JISだな。
まぁ、メモ帳で作ったものは有無を言わさずBOMが入るけどね。
Terapadで言えばUTF-8の無印のに相当する。UTF-8Nは作れないということ。
でも読むことはできますよ。そうそう、メモ帳でUnicode系扱えるのはNT系OSだけだよ。
まぁ、部活のHPをチミチミ製作していたりもする。
スクリプト周りは一任されてるけどさ。Linux使いも僕しかいない(?)けど、PHP使いも。