firefox 在提交表单后销毁字体

firefox destroy fonts after a form submission

目前我正在开发 php 的波斯语(波斯语)网站。问题是当我在 firefox 中提交表单时,所有字体都被破坏了。像下面的图片:

我已经检查了代码(包括元标记和其他代码数千次),这让我觉得更奇怪的是,这只发生在 firefox 上,在 submission.Is 之后没有其他浏览器有任何与 firefox 相关的错误或我我应该更改 form 的任何属性。 我很绝望。如果有人有线索,请帮助我。

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

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

引用自Wikipedia Byte Order Mark

A text editor or web browser interpreting the text as ISO-8859-1 or CP1252 will display the characters "" for this.

因此,我假设您注入了无效的 text-fragments,其中包含这样的 BOM inside 和现有的 HTML 文档(AJAX?),您的Firefox 浏览器检测到该文档不再是有效的 Unicode,因此退回到 ISO-8859-1,它曾经是 Internet 上所有文本文档的默认字符编码。

由于 CSS 规则仍然适用,因此保留了 LTR 显示,只是更改了 text-encoding meta-information。

请注意:拥有正确的 headers 是表示正确编码的一回事,但它并不能减轻您实际提供正确编码的 text-data.

的负担

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

解决方法:不要在此处注入任何BOM。如果您从 PHP 文件返回 HTML,请检查 PHP 文件它不使用任何 BOM。

我解决了这个问题。 我用了<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />。 我在 PHP 中用 UTF8 header 替换了它: header('Content-Type: text/html; charset=utf-8'); 问题解决了。

我有另一个问题解决了这个 change.My 网站页面在 firefox 中加载两次并解决了 now.It fire fox 根本不喜欢那个元标记的接缝 ;)