2009 年 4 月 11 日にはコードの実装は完了していましたが、この記事を書く時間がなかったので、今日時間を割いてこの記事を補うとともに、ASP 愛好家のためにおいしいスープを渡しますASP エンコード変換のギャップ。記事の背景:
ある日、同僚が CSDN のプログラミング言語ランキングに関する記事を見せてくれました。その中で VB が非常に上位にランクされているのを見たので、ASP (vbscript) は確かにかなり優れていると言いました。その結果、彼は私に反論し、ASPは良くない、達成するのが難しいことがたくさんあると言いました。私は何と言ったでしょうか?私は数年間 ASP を開発してきましたが、マルチスレッド アプリケーション (もちろん、ASP はマルチスレッド タスクをシミュレートすることもできます) など、非スクリプト言語の範囲内でない限り、実装が難しいことは何もありませんでした。その結果、彼はマルチスレッドやコード変換などについて話しました。彼は、コード変換に多大な労力を費やして成功しなかったので、ASP が弱すぎると感じたと述べました。これを聞いて、私たちは彼のプログラミングの基礎が十分にしっかりしておらず、ASP に関する彼の知識が非常に限られていることがわかりました (そして後で彼は、ASP の一般的に使用されるいくつかの基本オブジェクトを知らない、または使用していないと言いました。私は気を失いそうになりました。使ったこともないし、ASPは弱いと言われました。 、どうやら...私はもう年をとったので、根拠も発言権もないことさえ理解していません(笑)、それで、私は怒りのあまり、ASPエンコーディングの問題に気づきました。彼は実際に ASP をとても見下しているので、そのことを考えるだけでとても腹が立ちます。もちろん、私の研究は、これまでの ASP 開発におけるエンコード変換に関する研究のギャップを埋めるものでもあります。
さて、本題に入りましょう。まず、テキストのエンコーディングを変換する場合は、現在のテキストに対応するエンコーディング セットを知り、対応するエンコーディングを使用する必要があります。エンコードが正しく変換されていることが前提です(この手順を間違えると、変換されたコードは文字化けの連続になります)。現在のエンコーディングを見つけて正しく読み込んだら、ターゲット エンコーディングを設定した Stream オブジェクトを使用して、指定したファイルにコンテンツを保存できます。この時点で、エンコーディングの変換は成功です。
ASP エンコード変換の具体的なコード実装を見てみましょう。
次のようにコードをコピーします。
'エンコーディング内容の変換 変換する内容、cset ターゲットエンコーディング、dest ターゲットファイルの絶対パス
関数 TransferCharSet(content, cset, dest)
薄暗いオブジェクトストリーム
Objstream = Server.CreateObject(adodb.stream) を設定します。
objstream.Mode =3
objstream.Charset = cset
objstream.Type = 2
objstream.Open
objstream.WriteText コンテンツ
objstream.Position = 0
objstream.SaveToFile dest,2
objstream.Close
objstream = 何も設定しない
終了機能
'対応するエンコーディングを使用して指定されたコンテンツを読み取ります
関数 getcontent(パス)
薄暗いオブジェクトストリーム
Objstream = Server.CreateObject(Adodb.Stream) を設定します。
objstream.Charset = GetCharSetName(パス)
objstream.Type = 2
objstream.Mode =3
'objstream.Charset = コード
objstream.Open
Objstream.LoadFromFile パス
objstream.Position = 0
getcontent = objstream.ReadText
objstream.Close
objstream = 何も設定しない
終了機能
'指定されたコンテンツのエンコーディング名を取得します
関数 GetCharSetName(パス)
objstream=server.createobject(Adodb.Stream) を設定します。
objstream.Type=1
objstream.mode=3
objstream.open
objstream.Position=0
objstream.loadfromfile パス
bintou=objstream.read(2)
AscB(MidB(bintou,1,1))=&HEF かつ AscB(MidB(bintou,2,1))=&HBB の場合
GetCharSetName=utf-8
ElseIf AscB(MidB(bintou,1,1))=&HFF かつ AscB(MidB(bintou,2,1))=&HFE の場合
GetCharSetName=unicode
それ以外
GetCharSetName=gb2312
終了の場合
objstream.close
objstream=nothing を設定します
終了機能
さて、このコード部分の後、変換作業は完了です。この記事が ASP 愛好家やその他の言語愛好家に何らかの助けとインスピレーションをもたらすことを願っています。
最後に言いたいのは、プログラミング言語を学ぶことや使うことは難しいことではなく、他人のせいにして言語を責めるのではなく、もっと頭を使って自分に必要な機能を実装する方法を考えることだということです。弱すぎる。
さて、皆さんの幸せなプログラミングを願って、ここではASPのエンコード変換について書いていきます。今後ももっと面白い個人的な記事を公開していきます。よろしくお願いします。