2014-05-05 5 views
0

Эта проблема - самое странное, что я видел некоторое время.PhP получить первую букву как символ

Я получил все страницы в UTF-8, добавив <meta> как charset="UTF-8" на индексной странице, и даже header().

Затем я получил страницу, где я добавляю всю ссылку из верхнего меню в массиве, поэтому при отображении списка она масштабируется.

$menu['services'] = "Services"; 
    $submenu['services']['sendings'] = "International sendings"; 
    /* And more like this */ 

Для отображения ссылки:

foreach($service as $key => $value) { 
    if(isset($submenu[$key])) { 
     echo '<li><a href="">'.$value.'</a> 
     <ul>'; 
     foreach($submenu as $keysub => $valuesub) { 
      echo '<li><a href="">'.$valuesub.'</a></li>'; 
     } 
     echo '</ul></li>'; 
    } 
    else { 
     echo '<li><a href="">'.$value.'</a></li>'; 
    } 
} 

Это показывает мне все меню правильно, за исключением самой первой из всех подменю (только первый).

<li> 
    <a href="">Servicios</a> 
     <ul> 
      <li> 
       <a href="">Anternational sending</a> 
      </li> 
      <li> 
       <a href="">Parking service</a> 
      </li> 
      <!-- and others --> 
     </ul> 
    </a> 
</li> 

Как вы можете видеть, есть «A» вместо «I». Я пробовал другие слова, такие как «Envíos internacionales» (на испанском языке) и выдает « nvíos internacionales».

Я действительно не знаю, почему это делается.

ответ

1

Убедитесь, что все ваши файлы PHP сохранены с использованием UTF-8 без спецификации (байтовый порядок байтов), вы можете легко проверить, какая кодировка установлена ​​в настоящее время, и конвертировать файлы с помощью бесплатного блокнота ++. В главном меню есть опция «Формат», вы можете либо установить, либо преобразовать текущий файл в нужную кодировку. Вы также можете проверить отметку порядка байтов, используя какой-то общий шестигранный редактор.

+0

Я использую Комодо, и отображает только «UTF-8» (которым я использую), он не отобразите «Whitout BOM», поскольку он показывает Notepad ++. Конечно, это может быть так, но странно, что это происходит только с первым из подменю, и все остальные отображаются правильно. Я постараюсь, как только смогу! – Cheshire

0

Даже если ваша страница находится в UTF8, убедитесь, что ваша таблица DB находится в кодировке UTF8 (если указанные данные заполнены из БД). Вы также можете попробовать использовать utf8_encode или iconv.

Это также может произойти, если существует один или несколько типов кодирования объявлены на странице

+0

Данные не берутся из БД, спасибо. Также попробовал это с utf8_encode и подумал, что иконка будет пытаться на всякий случай, когда я смогу попробовать это из UFT-8 без спецификации ». Они просто рекомендуют, но я просто вижу странным, что даже с согласным (S, C ...) он также создает странные символы/символы ... – Cheshire

Смежные вопросы