我试图在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文件中设置编码时会删除换行符?
答案 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