2015-01-03 2 views
0

현재 페르시아어 (페르시아어)에서 PHP로 웹 사이트를 개발 중입니다. 문제는 모든 글꼴이 파기되는 Firefox에서 양식을 제출할 때입니다. 아래 사진처럼 : 나는 코드를 체크 한 before submiting파이어 폭스는 양식 제출 후 글꼴을 삭제합니다.

after submiting

(메타 태그 및 다른 사람의 수천 번 포함)와 그것이 더 이상한하게 만 파이어 폭스에서이 앞으로 일어날 및 submission.Is 후 다른 브라우저 firefox와 관련된 버그가 있거나 양식의 속성을 변경해야합니다. 나는 절망적이다. 누군가가 단서를 가지고 있다면 저를 도우십시오. 이 UTF-8 BOM의 LTR 변형과 비슷한 문제

enter image description here

enter image description here

: 스크린 샷의

+0

이 다른 페르시아어 폰트를 시도)

나는 그것의 now.It 해결이 화재 여우에서 모든 메타 태그처럼 해달라고 솔기 파이어 폭스에 두 번로드이 change.My의 웹 사이트 페이지 해결할 또 다른 문제가 있었다? –

+0

이것은 글꼴과 관련이 없습니다. 문자 인코딩 오류입니다. 상황을 구성하는 데 사용할 수있는 몇 가지 코드를 제공해야합니다. –

답변

1

나는이 문제를 파악했다. <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />을 사용했습니다. PHP의 UTF8 헤더로 바꿨습니다 : header ('Content-Type : text/html; charset = utf-8'); 및 문제가 해결되었습니다.

2

한 세부 내 관심을 끌었다.

Wikipedia Byte Order Mark에서 인용 :

텍스트 편집기 나이에 대해 "을"문자가 표시됩니다 ISO-8859-1 또는 CP1252과 같은 텍스트를 해석하는 웹 브라우저.

나는 그러므로 당신이 내부에 이러한 BOM 을 갖는 HTML 문서를 기존의 잘못된 텍스트 조각을 주입 가정 것이다 (AJAX는?), 파이어 폭스 브라우저가 유효한 유니 코드가 더 이상 때문에 떨어지는 문서가 될 수 없음을 감지 다시 한 번 인터넷의 모든 텍스트 문서에 대한 기본 문자 인코딩 인 ISO-8859-1로 돌아 왔습니다.

CSS 규칙이 계속 적용되므로 LTR 디스플레이가 보존되어 텍스트 인코딩 메타 정보 만 변경되었습니다.

올바른 헤더를 사용하는 것이 올바른 인코딩을 알리기위한 하나의 방법이지만 인코딩 된 텍스트 데이터를 실제로 제공하는 데 부담을주지는 않습니다.

나는 BOM이 꽤 까다로울 수 있으므로 간과하기 쉽다는 것을 인정해야한다.

해결책 : 여기에 BOM을 주입하지 마십시오. PHP 파일에서 HTML을 다시 제공하는 경우 BOM을 사용하지 않는 PHP 파일을 확인하십시오.