sql >> データベース >  >> RDS >> Mysql

クラシックASP+MotobitPureASPアップロード+UTF-8文字セット

    IISがASPエンコーディングを処理する方法を理解する

    Classic ASPのすべてのエンコーディングの問題と同様に、さまざまなコマンドがどのような目的を果たしているかを理解するのに役立ちます(問題を解決しているように見えるため、誤って使用することがよくあります)

    <%@ Language = "VBScript" CodePage = 65001 %>

    この行は一般的に誤解されています。構文は<%@ "ASP @ Processing Directive" また、IISにASPページの処理方法を指示するのに役立ち、エンコードを正しく処理する場合におそらく最も重要なコマンドの1つです。

    • @Language ASPページの処理に使用する登録済みのアクティブスクリプト言語をIISに通知します。

    • @CodePage ASPページを処理するために使用するCodePageをIISに指示します。ページがUTF-8を使用して保存されている場合 次に、IISは、ページを処理するときにCodePage 65001を使用する必要があることを知る必要があります。 (別名UTF-8

    これは、@CodePageを意味します ページの作成時に使用された物理エンコーディングと常に一致する必要があります。これを解決するには、高度なテキストエディタを使用する必要がある場合があります。例としては、 Notepad++ があります。 (GUIウィンドウの右下のステータスバーにエンコーディングを表示します) および Visual Studio Advanced Save Optionsと呼ばれる非表示のメニューコマンドがあります メニューバーをカスタマイズしてアクセスできます)

    <% Response.CodePage = 65001 %>

    よく誤解されることもありますが、このコマンドの目的は、動的文字列をエンコードする方法をIISに指示することです(動的文字列とは、Response.Write()を使用して出力されるものを意味します。 ) 。正しく設定されていない場合、またはエンコーディングの不一致が発生すると想定される場合、プロセス全体の中でおそらく最も重要な部分が発生する可能性があります。

    <% Response.CharSet = "UTF-8" %>

    このコマンドは、;charset=utf-8を設定します Content-Type内 応答がサーバーからクライアントブラウザに送信されるときのHTTPヘッダーは、この応答をUTF-8として処理する必要があることをブラウザに通知します。 デフォルトではなく。

    のような意味のコード
    Response.AddHeader "Content-Type", "text/html; charset=utf-8"
    

    不要であるため、使用しないでください。 Content-Typeのコマンドもあることにも注意してください。 HTTPヘッダーも

    Response.ContentType = "text/html"
    

    以前よりもさらに冗長になります。

    便利なリンク



    1. ORA-00936の欠落している式を解決する方法

    2. phpとmysqlは、あるテーブルから別のテーブルにレコードをコピーします

    3. MySQLとPHP:複数のキーワード検索

    4. SQLServerのワード関数に数値を書き込む方法