documents:other:memo01:other-011
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン | |||
| documents:other:memo01:other-011 [2025/11/20 09:37] – ↷ documents:other:memo02:other-011 から documents:other:memo01:other-011 へページを移動しました。 k896951 | documents:other:memo01:other-011 [2026/05/16 02:18] (現在) – [UTF-8でASPスクリプトを記述する場合の注意] k896951 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | |||
| + | ====== 019.UTF-8でASPスクリプトを記述する場合の注意 ====== | ||
| + | |||
| + | |||
| + | ===== これは何? ===== | ||
| + | |||
| + | IISのASPスクリプトと扱うデータを UTF-8 にする際の注意点メモ書き。 | ||
| + | |||
| + | ===== UTF-8を使う意味 ===== | ||
| + | |||
| + | 最近はUTF-8で多言語を扱うものが多くなってきた。MBCS(マルチバイトキャラクタセット)と比べ、各言語(コード)の処理を考慮しないでも良いのが利点。 | ||
| + | さらに、今回はXMLを絡めており、XMLで値を受け表示することもやるのでUTF-8で全てを扱うのは必須となった。 | ||
| + | |||
| + | ===== ASPスクリプトをUTF-8で保存する ===== | ||
| + | |||
| + | Windowsのメモ帳であれば保存時にUTF-8が選択できる。 | ||
| + | |||
| + | ===== 扱うデータはUTF-8でやり取りする ===== | ||
| + | |||
| + | 送信時に、キャラクタのエンコーディングをUTF-8である旨明示する。 | ||
| + | 例えば、HTMLのHEADタグ内部に | ||
| + | |||
| + | <META http-equiv=" | ||
| + | |||
| + | にしておけば、FORM等で扱うデータの文字コードセットはUTF-8になる。必ずそうなるかはブラウザによって違う可能性が大いにあるので、場合によってはFORMタグに明示的に文字コードセットの指定を行う必要がある。 | ||
| + | |||
| + | ===== 実験 ===== | ||
| + | |||
| + | |||
| + | ==== ファイル群 ==== | ||
| + | |||
| + | |||
| + | wa01.asp - 文字を入力するためのフォーム表示ASPスクリプト | ||
| + | <code asp> | ||
| + | < | ||
| + | <% | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | %> | ||
| + | < | ||
| + | < | ||
| + | |||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | |||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | wa02.asp - wa01.aspから送られてきた文字の表示ASPスクリプト | ||
| + | <code asp> | ||
| + | < | ||
| + | <% | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | %> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | |||
| + | < | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | 今回は上記2ファイルを、 | ||
| + | * Windows2000Server | ||
| + | * WindowsXP | ||
| + | * WindowsServer2003 | ||
| + | |||
| + | の各サーバ上にコピーし、各サーバで稼動するIISで表示可能にしておく。 | ||
| + | |||
| + | |||
| + | multipage.html - 各サーバのwa01.aspから送られてきた文字を表示するASPスクリプト | ||
| + | <code html> | ||
| + | < | ||
| + | < | ||
| + | <META http-equiv=" | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | これはデスクトップにおいて、一画面で3つのサーバの結果を見られるようにする。 | ||
| + | |||
| + | ==== 実行 ==== | ||
| + | |||
| + | まずは、multipage.html を表示します。\\ | ||
| + | {{: | ||
| + | |||
| + | |||
| + | ここで、各フレームにOSのIISのバージョンが表示され、テキストボックスが表示されます。 | ||
| + | この状態でテキストボックスに「キタキツネ」と入力し、ボタンを押してみます。 | ||
| + | {{: | ||
| + | |||
| + | |||
| + | |||
| + | Windows2000だと文字化けしてしまいました。 | ||
| + | |||
| + | ===== 文字化けの原因 ===== | ||
| + | |||
| + | |||
| + | ASPスクリプトは基本的に OSのディフォルトの言語を使用します。 | ||
| + | IIS5.1やIIS6.0は、ASPスクリプト自体がUTF-8で記述されていると、言語(コード)もUTF-8と解釈するようですが、 | ||
| + | IIS5.0は、ASPスクリプトはUTF-8でも扱うデータはOSのディフォルトの言語を採用、としている感じです。 | ||
| + | 解釈の部妙な違いというか、半端に忠実というか、頭が固いというか…です。 | ||
| + | |||
| + | 余計な心配なくUTF-8を利用する場合には、OSのディフォルトより優先してUTF-8を使用する旨明示的に示しておきます。 | ||
| + | 具体的には、ASPスクリプトの @コマンドで コードページ65001を指定します。 | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | < | ||
| + | ↓ | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | とします。結果は、 | ||
| + | |||
| + | {{: | ||
| + | |||
| + | この様に正しく文字が表示されます。 | ||
| + | |||
| + | {{tag> Windows ASP 技術資料}} | ||
documents/other/memo01/other-011.txt · 最終更新: by k896951
