2013-08-03 8 views
11

Próbuję po prostu usunąć ukryty znak zerowej szerokości linii (U + FEFF) w moim skrypcie. Strona, na której się pojawił, znajduje się pod adresem http://cynicode.co.uk (Zwróć uwagę, że strona indeksu została zmodyfikowana i jest jedyną, która działa poprawnie w tej chwili)Jak usunąć znak uffff w moich skryptach stron internetowych?

Patrząc na elementy html na stronie, widać to :

enter image description here

kluczowym punktem jest czerwona kropka między < body > i < !--5-- >. To, gdy się unosi, pokazuje, że jest to znak \ufeff. Problem polega na tym, że kiedy przeglądam skrypt, nie ma takiego charakteru, który istnieje.

Używam PHP i HTML do skonstruowania tej strony, a elementy między < !--4-- > i < !--5-- > składa się z następujących elementów. Po pierwsze, na samej stronie indeksu:

<?php 
    echo "<!--4-->"; 
    echo "<head><meta charset='utf-8' /><link rel='shortcut icon' type='image/ico' href='./images/CyniCode.ico'> 
    <title>CyniCode :: Index</title> 
    <meta name='description' content='The Cynic's paradise! Home of Cynical.' /> 
    <meta name='author' content='Cynical' /> 
    <meta name='keywords' content='Cynical;Blog;Code' /> 
    <link type='text/css' rel='stylesheet' href='./css/mystyle.css' /> 
    <link rel='shortcut icon' type='image/ico' href='./images/CyniCode.ico'> 
    <link href='http://fonts.googleapis.com/css?family=Muli' rel='stylesheet' type='text/css' /> 
    <script type='text/javascript' src='http://static.proofiction.net/jquery/jquery-1.9.1.min.js'></script> 
    <script type='text/javascript' src='http://static.proofiction.net/jquery/loginwait.js'></script> 
    <script type='text/javascript' src='http://static.proofiction.net/jquery/googleAnalytics.js'></script> 
    <script type='text/javascript' src='./http://static.proofiction.net/jquery/jquery.bxslider.js'></script> 
    <script type='text/javascript' src='./http://static.proofiction.net/jquery/jquery.bxslider.min.js'></script> 
    <script type='text/javascript' src='https://www.google.com/jsapi'></script> 
    <script type='text/javascript'><!-- 
     google_ad_client = 'ca-pub-xxxxxxxxxxxx'; 
     /* BiggerNavBox */ 
     google_ad_slot = '3977705372'; 
     google_ad_width = 300; 
     google_ad_height = 600; 
     //--> 
    </script> 
    <script> 
     (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 
     (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 
     m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 
     })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 

     ga('create', 'UA-xxxxxxxx-1', 'cynicode.co.uk'); 
     ga('send', 'pageview'); 
    </script> 

    </head>"; 
    require_once './functions/page.php'; 

Stanowi to stronę indeksu. Skrypt page.php, o którym mowa, jest moim oszustem do szybkiego i czystego ustawienia strony. Jednak ... istnieje niewielka różnica między dwoma komentarzami na stronie. To jest różnica między tymi dwoma komentarzami.

<?php 
    echo "<!--5-->"; 

Każda pomoc, którą każdy może zaoferować, byłaby bardzo cenna. Wszystkie fragmenty kodu były bezpośrednią kopią i pastami z moich skryptów.

+0

Mogę zapytać który edytor jest jeden w migawce? – VSB

+1

@VSB tam nie ma redaktorów. Górny zrzut ekranu pochodzi z inspektora elementów Google Chrome. Zwykle używam SublimeText lub Vim dla tekstów redaktora tych rzeczy, i JetBrain PHPStorm/WebStorm dla rzeczy webdev, chociaż Notepad ++ nadal zaznacza wszystkie pola. – M4Numbers

Odpowiedz

20

Niektóre z .php plików (prawdopodobnie ./functions/page.php zawiera Byte Order Mark. Jeśli używasz jakiegoś IDE, należy sprawdzić właściwości kodowania tego pliku, a przy odrobinie szczęścia będzie można go usunąć.

Edit Jeśli używasz * nix , Elegant way to search for UTF-8 files with BOM? powinno pomóc

+0

Witam. Dziękuję za odpowiedź. Używam Notepad ++ i ustawiłem kodowanie wszystkich plików na _UTF-8 bez BOM_ (miałem duży problem z powrotem z BOM i musiałem majstrować przy wielu rzeczach). Istnieje również 'meta charset = 'utf-8'', który działał w przeszłości. W rzeczywistości problem ten pojawił się dopiero niedawno. Naprawdę nie jestem pewien, co się zmieniło, żeby to się stało. – M4Numbers

+0

Po prostu sprawdź właściwości tego pliku. Jeśli nie ma LM, problemem jest coś innego. – Cthulhu

+2

@ M477h3w1012 Yoy można sprawdzić za pomocą tego http://www.bryntyounce.com/filebomdetector.htm. – Cthulhu

Powiązane problemy