2013-03-27 1 views
1

writting php code에 대해 notepad ++ 및 utf-8 인코딩을 사용합니다. 내 머리글이 아래로 이동하는 문제에 직면했다. 나는 Firebug가 <body> 이후에 이중 공간을 보여 주도록 설립 했으므로 빈 공간을 삭제하면 그의 장소로 헤더가 설정됩니다. 내가 볼 수있는 HTML 코드를보고 'Ctrl 키 + U'를 누르면하지만 그게 전부 괜찮 :더블 스페이스 태그로 생성 된 HTML <body>

<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
<body> 
    <div id="header"> 
     <div class="container"> 
     <img alt="" src="/../images/logo.png" class="active"> 
     </div> 
    </div> 
</body> 
</html> 

내가 ANSI 문제의 사라져로 인코딩 \ Conver 유럽을 선택하면 중요한 점. DB로 UTF8을 사용하고 레코드에 키릴 문자가있는 ANSI를 사용할 수 없습니다.

문제 :

<body> 

    <div id="header"> 

답변

2

파일을 검사 헥스 편집기를 사용합니다. <body><div... 사이에 '보이지 않음'(예 : 'whitespace'또는 '보이지 않음') 문자가 있어야합니다. 16 진수 편집기리스트는 here입니다.

가장 빠른 해결책은 ANSI/ASCII로 저장하고 다시 열고 UTF-8로 다시 저장하는 것입니다. 다시 열 때 보이지 않는 문자를 없애거나 적어도 이상한 문자를 보여 주어야합니다.

편집 질문에 붙여 넣은 문제를 살펴 보았습니다.

(" normal (windows) newlines가"와 20 정상적인 공간 0D0A은 캐리지 리턴/라인 피드, 또는 있습니다) enter image description here

: 나는 이상한 아무것도 표시되지 않기 때문에 문자를 복사/붙여 잃었다 생각


나는이 문제를 한두 번 두 번 복사 해 보았습니다. jsFiddle에서 코드를 복사했습니다. 그것은 "formatter/syntax highlighter"입니다. 때때로 원하지 않는 문자를 추가하는 것처럼 보입니다. 예를 들어 this question을 참조하십시오.

또한, BOM 때로는 문제의 원천이지만, BOM이 파일의 처음 몇 바이트이기 때문에 공간이 <body><div... 사이에 그 이유 (AFAIK) 설명 할 것입니다. BOM이 들어있는 다중 PHP 파일 (include()/require() 등 사용)을 사용하여 최종 출력을 작성하는 경우 이러한 파일 중 하나에 원치 않는 (?) BOM이 포함될 수 있습니다.

+0

감사합니다. 저는 XVI32 편집기를 사용했습니다. 필자는 전에 FF BB BF로 문자를 인코딩했습니다. 그 (것)들을 삭제 한 후에 나는 나가 원하는 것을 얻었다. 고마워요! – user2027175

1

메모장 ++에서는 PHP 작업시 반드시 UTF-8 without BOM을 사용해야합니다. 메모장 ++에서 UTF-8은 유감스럽게도 BOM이 모든 PHP 소스 파일 앞에 추가된다는 것을 의미합니다.

PHP는 혐오스러운 인코딩이기 때문에 그대로 리터럴 컨텐트로 처리합니다. 이로 인해 headers already sent과 같은 모든 종류의 문제가 발생하고 일부 브라우저에서는 문서가 버크 모드로 전환됩니다.

UTF-8으로 생성 된 BOM을 수동으로 삭제하는 것보다 UTF-8 without BOM- 인코딩하는 것이 훨씬 쉽습니다.

+0

고마워요! 또한 http://www.w3.org/International/questions/qa-byte-order-mark.en.php에 대한 흥미로운 기사를 찾았습니다. – user2027175

관련 문제