初めての ASP.NET ページを作成しようとしています。XP で IIS 5.1 を取得し、.NET 4 を実行するように構成しました。新しい仮想ディレクトリを作成し、.aspx ファイルを追加しました。ファイルを参照すると、ASCII 以外の文字が壊れています。たとえば、ü (U+00FC) は ü (U+00C3 U+00BC) に変換されます。これは、I-don't-get-this-is-UTF-8 と同等です。
私はこれを利用するさまざまな方法を試しました:
- .aspx ファイルが実際に UTF-8 としてエンコードされていることを確認しました。
メタタグを設定しました:
<meta charset="UTF-8">
text/html;charset=utf-8
IIS の [HTTP ヘッダー] > [ファイルの種類] で.aspx を処理するように仮想ディレクトリを設定しました。- に追加
ResponseEncoding="utf-8"
しました<%@ Page ... %>
。 - に文字列を挿入しました
HttpUtility.HtmlEncoded()
。ü は ü (U+00C3 U+00BC) に変換されました。
最後に、うまくいく2つの方法を見つけました:
- ASCII 以外の文字を次のような文字参照に置き換える
ü
これは 90 年代には問題ありませんでしたが、今日では問題ありませんでした。 次の内容の web.config ファイルを仮想ディレクトリに追加します。
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.web> <globalization fileEncoding="utf-8"/> </system.web> </configuration>
設定しないfileEncoding
と、ASP.NET パーサーは .aspx を読み取り、ファイル エンコーディングを推測せずにすべての非 ASCII 文字を破損します。これはあなたのプロが一緒に暮らすことを学んだだけですか、それとも私は何かを見逃していますか? グローバリゼーション設定を含む web.config ファイルは、.aspx ページで「国際」文字を処理する方法ですか? PHP で同様の問題が発生したことを覚えていないので、なぜこれが ASP.NET で発生するのか不思議です。