Tob*_*ore 4 vim encoding google-chrome utf-8 text-files
看来我在文件编码方面遇到了麻烦。它是在 CentOS 服务器上通过 SSH 使用 vim 创建的文本文件。在浏览器中查看文件时,文件的编码存在问题。
\n\n我创建了一个测试文件,它解释了这种行为:
\n\nres.tobscore.com/test.txt
\n\n这就是我希望输出的样子(这只是一个使用特殊字符来正确显示变音符号的 html 文件):
\n\nres.tobscore.com/test.html
\n\n在终端中使用命令 file 和 cat 会显示以下输出:
\n\nuser>file test.txt \ntest.txt: UTF-8 Unicode English text\nuser>cat test.txt \nThis is a testfile. I'm using the German Umlaute and the euro sign, to test\nthe encoding.\nEuro - \xe2\x82\xac\nScharfes S - \xc3\x9f\nAe - \xc3\x84\nOe - \xc3\x96\nUe - \xc3\x9c\nRun Code Online (Sandbox Code Playgroud)\n\n如您所见,它是 utf-8 unicode 并且显示正确。您有什么建议吗?为什么我的浏览器(Firefox 和 Chrome)无法显示它?使用我的平板电脑(以德语设置)用本机浏览器检查它显示了正确的结果,但是用 Chrome 尝试它显示了相同的可怕/错误的输出。\n有没有办法设置编码,以便在每个环境中显示它相同的输出?
\n您的服务器很可能会以Content-Type: text/plain 的形式发送 .txt 文件,但没有字符集。因此,浏览器必须选择一些内容(最有可能是 ASCII、iso-8859-1 或 iso-8859-15)并将 UTF-8 字节显示为垃圾。
一种解决方法是将文本文件包装在一个小的 PHP 脚本中,并用它发送正确的编码:
<?php
header ('Content-Type: text/plain; charset=utf-8');
readfile ('test.txt');
?>
Run Code Online (Sandbox Code Playgroud)
readfile() 会将test.txt的内容原封不动地转储到您的浏览器。
请注意,这是根据扩展名(.txt)选择内容类型的网络服务器;您也许可以更改它,但是您必须深入研究配置文件。
| 归档时间: |
|
| 查看次数: |
2331 次 |
| 最近记录: |