2012-05-13 8 views
5

最初のASP.NETページを作成しようとしています。 XPでIIS 5.1を入手し、.NET 4を実行するように設定しました。新しい仮想ディレクトリを作成し、.aspxファイルを追加しました。ファイルを参照すると、非ASCII文字が壊れています。たとえば、ü(U + 00FC)は、UTF-8に相当するI(U + 00C3 U + 00BC)に変換されます。ASCII以外の文字にはweb.configが必要ですか?

私はこれを役に立つのさまざまな方法を試してみました:

  1. は私が.aspxのファイルが実際にUTF-8としてエンコードされることを確認しました。
  2. 私はメタタグ設定:私はIISでのHTTPヘッダ>ファイルタイプの下text/html;charset=utf-8として.aspxの処理するための仮想ディレクトリを設定し

    <meta charset="UTF-8">

  3. を。

  4. ResponseEncoding="utf-8"から<%@ Page ... %>を付け加えました。
  5. HttpUtility.HtmlEncoded()に文字列を挿入しました。今、üはÃ ¼(U + 00C3 U + 00BC)に変換されました。このよう&#252;として

    1. を文字参照で非ASCII文字を交換、これは90年代ではなく、今日では大丈夫だった:

    は最後に、私が働いていた2つの方法が見つかりました。このコンテンツで、仮想ディレクトリにweb.configファイルを追加する

  6. <?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ページの "international"文字を処理する方法はありますか?私はPHPで同様の問題を抱えていることを覚えていないので、なぜこれがASP.NETでうまくいかないのか困惑しています。

+0

設定し

  • を設定
  • バイトオーダーマーク(BOM)付きのUTF-8一般に、UTF-8はBOMを必要としません。バイトオーダーはエンコーディングに暗黙的に含まれているためですが、Microsoftはそれを要求する伝統を持っています。ファイルエンコーディングをより推測するのでロバスト。私はこれが私が探していた解決策だと思うが、コメントはまだ歓迎されている。 –

  • +0

    Microsoft Webプラットフォームインストーラのインストールを検討し、IIS express 7.5とWeb MatrixまたはVS 2010 express – Aviatrix

    答えて

    3

    非ASCII文字を使用するには、2つのことが必要です。ファイルに対してこのエンコーディングを選択することによって、UTF-8使用してファイルを保存して、あなたは常にASP.NETのweb.configファイルがあることをごweb.configファイル

    <globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8" /> 
    

    注これらの設定を持っていることを確認してください。これらの設定を持ち、asp.netディレクトリ{drive:}\WINDOWS\Microsoft.NET\Framework\{version}\CONFIG\に存在し、プロジェクトのweb.configに存在するグローバルなものもあります。時にはグローバルなものが現在の国からのエンコーディングを設定します。この場合、プロジェクトでUTF-8に戻す必要があります。

    あなたはすでに、私はちょうど3つの設定を指摘しているすべてを発見した:

    1. ユニコードを使用してファイルを保存します。.aspxページを保存します。私はそれは、web.configファイルなしで動作することの別の方法を見つけたrequestEncoding = "UTF-8" responseEncoding = "UTF-8"
    +0

    を使用することを検討してください。私はfileEncodingを追加した後、それは働いた。

    +0

    @ blackholeearth0_gmail – Aristos

    関連する問題