IIS 8.5 设置编码为 utf-8 用于静态 .txt 文件剥离换行符
IIS 8.5 setting encoding as utf-8 for static .txt files stripping line feed
我正在尝试为 IIS 8.5 网络服务器上的 .txt 静态文件设置编码。
根据我的研究,我应该将其添加到我的 web.config 文件中:
<system.webServer>
<staticContent>
<remove fileExtension=".txt" />
<mimeMap fileExtension=".txt" mimeType="text/html; charset=utf-8"/>
</staticContent>
</system.webServer>
虽然它似乎在页面以 UTF-8 格式打开 Chrome 中的 .txt 文件时工作,但它似乎去除了所有换行符并且我得到了一大块不间断的文本(代码)。
另一方面,我删除了那些行 Chrome 使用 Windows-1252 编码打开页面(这是一个问题,因为文本文件中的扩展字符也以 utf-8 编码不要出现)。但是,如果我通过 Chrome 设置手动将页面上的编码更改为 utf-8,则一切看起来都很完美,包括换行符。
我做错了什么,为什么当我在 web.config 文件中设置编码时换行符被去除?
好的,我想通了(在一个晦涩的 MSDN 页面中爬网时不小心)。
问题出在 MIME 类型的定义方式上。使用 "text/html" 时,它会从文本文件中删除 returns 回车符(我猜这与 Unix vs 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>
请注意,我将 "text/html" 更改为 "text/plain",这似乎完全不同。
我从这个 MSDN 网站得到了线索:Adding Static Content MIME Mappings
我正在尝试为 IIS 8.5 网络服务器上的 .txt 静态文件设置编码。 根据我的研究,我应该将其添加到我的 web.config 文件中:
<system.webServer>
<staticContent>
<remove fileExtension=".txt" />
<mimeMap fileExtension=".txt" mimeType="text/html; charset=utf-8"/>
</staticContent>
</system.webServer>
虽然它似乎在页面以 UTF-8 格式打开 Chrome 中的 .txt 文件时工作,但它似乎去除了所有换行符并且我得到了一大块不间断的文本(代码)。
另一方面,我删除了那些行 Chrome 使用 Windows-1252 编码打开页面(这是一个问题,因为文本文件中的扩展字符也以 utf-8 编码不要出现)。但是,如果我通过 Chrome 设置手动将页面上的编码更改为 utf-8,则一切看起来都很完美,包括换行符。
我做错了什么,为什么当我在 web.config 文件中设置编码时换行符被去除?
好的,我想通了(在一个晦涩的 MSDN 页面中爬网时不小心)。
问题出在 MIME 类型的定义方式上。使用 "text/html" 时,它会从文本文件中删除 returns 回车符(我猜这与 Unix vs 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>
请注意,我将 "text/html" 更改为 "text/plain",这似乎完全不同。
我从这个 MSDN 网站得到了线索:Adding Static Content MIME Mappings