firefox在表单提交后销毁字体

时间:2015-01-03 08:45:41

标签: php html firefox encoding persian

目前我正在用波斯语(波斯语)开发一个网站。问题是当我在firefox中提交表单时,所有字体都被销毁了。如下图: before submiting

after submiting

我已经检查了代码(包括元标记和其他数千次),这使得更加奇怪的是,这只发生在firefox上,并且在提交后没有其他浏览器。是否有任何与firefox相关的错误或我应该更改形式的任何属性。 我很安静绝望。如果有人有线索,请帮助我。

2 个答案:

答案 0 :(得分:2)

截图的一个细节引起了我的注意:

enter image description here

enter image description here

这看起来有点像UTF-8 BOM的LTR变体。

引用Wikipedia Byte Order Mark

  

将文本解释为ISO-8859-1或CP1252的文本编辑器或Web浏览器将为此显示字符“”。

因此,我假设您注入了无效的文本片段,其中包含内的和现有的HTML文档(AJAX?),您的Firefox浏览器会检测到该文档不再是有效的Unicode,并且因此,它回退到ISO-8859-1,它曾经是互联网上所有文本文档的默认字符编码。

由于CSS规则仍然适用,因此保留了LTR显示,只更改了文本编码元信息。

请注意:拥有正确的标题是发出正确编码信号的一件事,但它并不会让您免于实际提供正确编码的文本数据。

我必须承认,这些BOM可能非常棘手,因此容易被忽视。

解决方案:请勿在此处注入任何BOM。如果您从PHP文件提供回HTML,请检查它不使用任何BOM的PHP文件。

答案 1 :(得分:1)

我想出了这个问题。 我用了<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />。 我用PHP中的UTF8标头替换它: 标题(&#39; Content-Type:text / html; charset = utf-8&#39;);  问题解决了。

我有另一个问题通过这个改变解决了。我的网站页面在firefox中加载了两次并且现在已经解决了。它的接缝让火狐根本不喜欢那个元标记;)