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

Text IIS 8.5将静态.txt文件的编码设置为utf-8剥离换行符,text,encoding,utf-8,static-files,iis-8.5,Text,Encoding,Utf 8,Static Files,Iis 8.5,我正在尝试设置IIS 8.5 Web服务器上.txt静态文件的编码。 根据我的研究,我应该将以下内容添加到我的web.config文件中: <system.webServer> <staticContent> <remove fileExtension=".txt" /> <mimeMap fileExtension=".txt" mimeType="text/html; charset=utf-8"/> </stat

我正在尝试设置IIS 8.5 Web服务器上.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页面中爬行web时意外发现)

问题在于MIME类型的定义方式。当使用“text/html”时,它会从文本文件中去掉回车符(我想这与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>

请注意,我将“text/html”改为“text/plain”,这似乎起到了很大的作用

我从这个MSDN网站上得到了一个线索:

好吧,我发现了这一点(在一个模糊的MSDN页面上爬行时不小心)

问题在于MIME类型的定义方式。当使用“text/html”时,它会从文本文件中去掉回车符(我想这与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>

请注意,我将“text/html”改为“text/plain”,这似乎起到了很大的作用


我从这个MSDN网站上得到了一条线索:

当作为
text/html
使用时,它将被解析并呈现为html。如果文本文件的内容看起来像HTML标记或符号,后跟一组特定的字符,则浏览器也不会正确显示这些内容。当用作
text/HTML
时,它将被解析并呈现为HTML。如果文本文件的内容看起来像HTML标记或符号,后跟一组特定的字符,浏览器也不会正确显示这些内容。