IISがログサイトを配備する際に発生するUTF 8ファイルの文字化けしの問題と解決


問題発生原因


オンライン上の問題ログの表示を容易にするために、サーバのIISにサイトを新設し、ルートディレクトリはlogディレクトリを指し、ディレクトリの閲覧を開始した.ええと、サイトに入って、カタログのリストを見て、txtファイルを見つけて、クリックしてログを見て、あれ、どうして中の中国語が#%$@になりましたか?
はい、以前よくこの问题を処理して、chromeのメニュー="もっと多くのツール="コード="UTF 8をクリックして解决することができて、私は熟练してメニューを开いて、私は探して、探して、コードメニューはどこへ行きましたか??何だ?もともとchromeは自分の自動検出機能がすごいと思っていたBが、符号化オプションを外して、外してしまった......
どうしよう?IISサーバからしか手がつけられず、半日の資料を調べて、サイトのルートディレクトリの下のWebでソリューションを見つけました.configは、次の構成を追加します.

<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Content-Type" value="text/plain; charset=utf-8" />
      customHeaders>
    httpProtocol>
  system.webServer>
configuration>

うーん、やっぱり、txtファイルは文字化けしてない.ちょっと待って、ディレクトリリストはどうしてhtmlになりましたか??上の配置のplainがやった鬼をtext/htmlに変えたらどうですか?私は行って、txtファイルはまたhtmlになって解析して、このようにxssの攻撃の可能性があることができます......次のように変えて、いかなる効果がありません:
<add name="Content-Type" value="charset=utf-8" />

結局自分で半日模索して、解決策を見つけて、やはりwebを変えました.configは、以下のような内容で、簡単に言えばtxt拡張子のみを設定するmimetypeです.

<configuration>
    <system.webServer>
        <directoryBrowse enabled="true" showFlags="Date, Time, Size, Extension, LongDate" />
        <staticContent>
            <remove fileExtension=".txt" />
            <mimeMap fileExtension=".txt" mimeType="text/plain;charset=utf-8" />
        staticContent>
    system.webServer>
configuration>

最後に自己反省します:私はこんなに頭がいいのではないでしょうか......