Подтвердить что ты не робот

Почему появляется в моем HTML?

Я вижу этот символ в Firebug .

Я не знаю, почему это происходит, в моем коде нет такого персонажа. Для Firefox это нормально, но в IE все ломается. Я даже не могу найти этого персонажа в Google.

Я сохранил файл с кодировкой utf-8 без bom.

enter image description here

4b9b3361

Ответ 1

Символ, о котором идет речь &#65279, является символом Unicode "ZERO WIDTH NO-BREAK SPACE" (U + FEFF). Возможно, вы скопировали его в свой код через копию/вставку, не осознавая этого. Тот факт, что он не отображается, затрудняет определение, используете ли вы редактор, который отображает фактические символы Юникода.

Один из вариантов заключается в том, чтобы открыть файл в очень базовом текстовом редакторе, который не понимает юникод или тот, который его понимает, но имеет возможность отображать любые символы, отличные от ascii, с использованием их фактических кодов.

Как только вы его найдете, вы можете удалить вокруг него небольшой блок текста и повторно напечатать этот текст вручную.

Ответ 2

Просто используйте блокнот ++ с кодировкой UTF-8 без спецификации.

Ответ 3

Да, его так просто исправить, просто откройте этот файл с помощью блокнота ++ и выполните следующие действия → Кодирование\кодирование UTF-8 без спецификации. затем сохраните это. Это работает и для меня!

Ответ 4

Пытаться:

<?php 
// Tell me the root folder path.
// You can also try this one
// $HOME = $_SERVER["DOCUMENT_ROOT"];
// Or this
// dirname(__FILE__)
$HOME = dirname(__FILE__);

// Is this a Windows host ? If it is, change this line to $WIN = 1;
$WIN = 0;

// That all I need
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>UTF8 BOM FINDER and REMOVER</title>
<style>
body { font-size: 10px; font-family: Arial, Helvetica, sans-serif; background: #FFF; color: #000; }
.FOUND { color: #F30; font-size: 14px; font-weight: bold; }
</style>
</head>
<body>
<?php
$BOMBED = array();
RecursiveFolder($HOME);
echo '<h2>These files had UTF8 BOM, but i cleaned them:</h2><p class="FOUND">';
foreach ($BOMBED as $utf) { echo $utf ."<br />\n"; }
echo '</p>';

// Recursive finder
function RecursiveFolder($sHOME) {
  global $BOMBED, $WIN;

  $win32 = ($WIN == 1) ? "\\" : "/";

  $folder = dir($sHOME);

  $foundfolders = array();
  while ($file = $folder->read()) {
    if($file != "." and $file != "..") {
      if(filetype($sHOME . $win32 . $file) == "dir"){
        $foundfolders[count($foundfolders)] = $sHOME . $win32 . $file;
      } else {
        $content = file_get_contents($sHOME . $win32 . $file);
        $BOM = SearchBOM($content);
        if ($BOM) {
          $BOMBED[count($BOMBED)] = $sHOME . $win32 . $file;

          // Remove first three chars from the file
          $content = substr($content,3);
          // Write to file 
          file_put_contents($sHOME . $win32 . $file, $content);
        }
      }
    }
  }
  $folder->close();

  if(count($foundfolders) > 0) {
    foreach ($foundfolders as $folder) {
      RecursiveFolder($folder, $win32);
    }
  }
}

// Searching for BOM in files
function SearchBOM($string) { 
    if(substr($string,0,3) == pack("CCC",0xef,0xbb,0xbf)) return true;
    return false; 
}
?>
</body>
</html>

скопируйте этот код в файл php для загрузки в root и запустите его.

для получения дополнительной информации: http://forum.virtuemart.net/index.php?topic=98700.0

Ответ 5

"Я не знаю, почему это происходит"

Ну, я просто столкнулся с возможной причиной:-) Ваша HTML-страница собирается из отдельных файлов. Возможно, у вас есть файлы, которые содержат только часть тела или баннера вашей последней страницы. Эти файлы содержат маркер спецификации (0xFEFF). Затем, как часть процесса слияния, вы запускаете HTML tidy или xmllint над окончательным объединенным HTML файлом.

Это вызовет это!

Ответ 6

Если вы используете Notepad ++, "Меню" → "Кодирование" → "Преобразовать в UTF-8" ваши файлы "include".

Ответ 7

Если у вас есть много файлов для просмотра, вы можете использовать этот инструмент: https://www.mannaz.at/codebase/utf-byte-order-mark-bom-remover/

Кредиты для Мориса

Это помогает мне очистить систему с помощью MVC в CakePhp, поскольку я работаю в Linux, Windows, с различными инструментами.. в некоторых файлах мой дизайн был сломан. Поэтому после регистрации в Chrome с помощью инструмента отладки найдите & # 65279 ошибка

Ответ 8

Перед свободным пространством (обрезка)

Затем замените на RegEx .replace("/\xEF\xBB\xBF/", "")

Я работаю над Javascript, я сделал с JavaScript.

Ответ 9

Старый глупый трюк, который работает в этом случае... вставьте код из вашего редактора в блокнот ms, затем наоборот и злой персонаж исчезнет! Я вдохновляюсь проблемой wyisyg/msword copypaste. Notepad ++ utf-8 w/out BOM работает также.

Ответ 10

Вот мои 2 цента: У меня была такая же проблема, и я попытался использовать Notepad ++ для преобразования в UTF-8 без спецификации, а также старый "копия в MS-блокнот, а затем обратно", т. К. Все безрезультатно. Моя проблема была решена путем обеспечения того, чтобы все файлы (и "включенные" файлы) были той же файловой системой; У меня были файлы, которые были форматом Windows, и некоторые из них были скопированы с удаленного сервера Linux, поэтому они были в формате UNIX.