IIS 8.5将编码设置为utf-8,用于剥离换行的静态.txt文件

时间:2016-01-25 00:36:13

标签: text encoding utf-8 static-files iis-8.5

我试图在IIS 8.5网络服务器上设置.txt静态文件的编码。 根据我的研究,我应该将其添加到我的web.config文件中:

<system.webServer>
  <staticContent>
    <remove fileExtension=".txt" />
    <mimeMap fileExtension=".txt" mimeType="text/html; charset=utf-8"/>
  </staticContent>
</system.webServer>

虽然它似乎在页面打开Chrome中的.txt文件作为UTF-8,但似乎剥离了所有换行符,我得到了一大段非停止文本(代码)。

另一方面,我删除了Chrome浏览器使用Windows-1252编码打开页面的行(这是一个问题,因为文本文件中的扩展字符也以utf-8编码,不会显示)。但是,如果我通过Chrome设置手动将页面上的编码更改为utf-8,则所有内容都会完美显示,包括换行符。

我做错了什么,为什么在web.config文件中设置编码时会删除换行符?

1 个答案:

答案 0 :(得分:2)

好的,我想到了这一点(在一个不起眼的MSDN页面中抓取网页时意外)。

问题在于MIME类型的定义方式。使用&#34; text / html&#34;它从文本文件中删除了回车(我猜它与Unix与DOS和HTML兼容性有关)。

无论如何要保留Windows / DOS样式文本文件中的托架供稿并将静态.txt文件的默认编码更改为utf-8,请使用以下命令:

<system.webServer>
  <staticContent>
    <remove fileExtension=".txt" />
    <mimeMap fileExtension=".txt" mimeType="text/plain; charset=utf-8"/>
  </staticContent>
</system.webServer>

请注意,我更改了&#34; text / html&#34; to&#34; text / plain&#34;这似乎有所不同。

我从MSDN网站获得了一条线索:Adding Static Content MIME Mappings