很长的故事,但我的网站有问题,我的网站内的任何页面/链接导航之间都会出现一个空白的白页。仅在 Firefox 中发生,并且仅在较新版本的 Firefox 中发生(例如,在 3.6.x 版中未出现)。
在比较来自两个不同服务器的响应 header 后,从另一台服务器提供的站点没有这个问题——我注意到它的响应 header 中有这个:
Content-Type text/html; charset=UTF-8
我的普通服务器确实有这个问题在它的响应头中有这个:
Content-type text/html
所以,我将此行添加到我的 .htaccess 中,问题就消失了:
AddDefaultCharset UTF-8
我的问题:
我的快速测试没有显示问题,但不知道它可能导致什么副作用,或者它解决我的页面闪烁问题的原因,困扰着我。
最佳答案
我假设您的网站主要提供英文内容,并且由于 utf-8 与大多数英文字符编码兼容,因此我认为这种方法相当安全。如果没有,您需要对这些内容进行相应的更改。
顺便说一句,对于大多数 HTTP 服务器,还有一个全局默认字符集配置,理论上比 .htaccess 设置更高效。在大多数由 PHP、Java 编写的 Web 应用程序中,无论使用何种语言,应用程序本身都应该清楚地说明它使用的是哪种编码,这应该是最佳实践。
对于firefox flashing部分,根据我过去浏览器开发的经验,如果响应头中没有说明,浏览器需要自动检测你的编码。因此,如果初始假定的编码与检测到的不同,则浏览器需要强制页面重排。只是一个粗略的猜测,出于实际原因,我认为 Firefox 邮件列表应该是一个更好的去处。
关于.htaccess - .htaccess 中的 AddDefaultCharset UTF-8 安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14471643/