Apache SSI每个浏览器的不同字符编码

时间:2014-04-04 22:49:03

标签: php apache drupal character-encoding ssi

首先,我想在前言中加上以下内容:

  • 我意识到在网站上使用混合字符编码可能不是最好的主意,但这种配置多年来一直运行良好。
  • 此问题似乎不会影响Chrome(33.0.1750.154),但会影响IE(11)和Firefox(24.0和28.0)。
  • 在IE和Firefox中,内容在第一次加载时显示正常,但在后续加载时会遇到问题(即使在清除缓存并重新启动浏览器之后)。偶尔我会在上一次尝试后随机观察一次成功加载。
  • 据我所知,服务器上没有任何相关内容已发生变化。

我们的大多数网站都是ISO-8859-1,有些网页使用的是UTF-8。一些ISO-8859-1页面需要通过Apache SSI包含PHP生成的UTF-8内容。在这种情况下,PHP脚本使用iconv()函数将UTF-8转换为CP1252(我相信我会使用它来代替那些讨厌的Windows字符)。如上所述,这种设置多年来一直运作良好。

今天我了解到这包括内容出现奇怪,我在Firefox和IE中确认了这个问题。但正如我所提到的,它在Chrome中运行良好,而在其他浏览器中通常很好 - 但仅限于首次加载。

以下是示例页面(参见右栏):http://www.pccnaturalmarkets.com/producers/index.html

其中包括通过Apache SSI:http://www.pccnaturalmarkets.com/pcc/videos/_recent/producer/all

第一个链接应加载一个项目符号列表的视频图像和链接标题,这在Chrome中就是如此。但是在Firefox和IE中,我得到了这个:

Producer videos
‹µ—ÑjÛ0†ï÷Caƒ©NWFWHmÖBYae-ewB‘åX,¹’œ.¸·Ú‘-çªó6å&‰$ôÿŸÎ9ò¼UË7Ð}æJ.ã/•å"ËÎó­,„q¹`ÖW¤´RèBíHcMÑrï²å\Öx‘…¯ÙÉìS•›Ê/²³³ÖÆÂ.²YÎò¸£“^¸¼%k•ÏK©ð_T‘5Ûˆ(F1ŠÛ?5›òåU˜ë8wÑÆš3âhuztqŽÏ‚LÚ]+yÅlAŸ¤RÔÕ“}s‡>àZ€ÏÁÂDŠu+Ub`…b^í*Ù$LŠAèy.ã 8X1Ëqã=Q‚ñ OW÷øAuJ´S¢/!4Îè1Î}˜‡Û0'­w2&¦vƽä‘ðmt ¨F÷jcš˜+°Ÿ¬]½›ÿQ›ã G{¹W«òÔb¦ÙšÅŸ¼IvbÅ,ÄÖþwmÒñÊÑ?1”dmÅK¨ÜÔ Ó»t(ƒîaºôcpõýbõ—½Xõ^&‚y)¼Ñ]DHh7Ü V‹TeºWÃÎö™„`5,#Ís|)û ƒð™ 

直接在浏览器中请求后,第二个链接在所有浏览器中都可以正常加载。

我认为这是一个相对较新的事件。而且我无法理解为什么在浏览器和页面加载过程中行为不一致。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我忽略了提到包含的内容是通过Drupal生成的。记得刚刚启用了缓存,这就是原因。禁用缓存并解决了问题。