2014-04-24 3 views
0

Я работаю над сайтом, который имеет базовую функцию поиска для поиска продуктов с помощью ajax и отображения результатов вместе с тем, что искали. Однако по причинам, отличным от моего понимания, если поиск содержит какой-либо специальный символ (ie. é, è, ê), символ заменяется на поле. Я не могу понять, где именно происходит, и почему это влияет только на IE.Невозможно отобразить специальные символы в IE

Код:

<div class="aux_title"><?php echo htmlspecialchars($this->search_term); ?></div> 

The site работает создаёте, если это помогает/меняет ничего.

+0

Типичная проблема с кодировкой, но может быть в любом месте, когда ваши данные неправильно кодируются/декодируются. Поскольку это происходит только в IE8, я бы предположил, что только этот браузер использует неправильную кодировку, возможно, ошибочно автоматически обнаружен или принудительно. –

+0

@Bartdude Я проверил кодировку, используемую с 'mb_detect_encoding', и он утверждает, что кодируется' UTF-8'. Такие специальные символы отображаются на странице в других областях просто отлично, только результаты поиска, похоже, будут затронуты. – Chaosxmk

ответ

0

Попробуйте настроить кодировку в UTF-8

<meta charset="utf-8"> 

Или другой кодировкой, что лучше поддерживает ваши языки. Charsets

+0

Просто попробовал, никаких визуальных изменений. Причудливая часть проблемы заключается в том, что она встречается только в IE, в каждом другом браузере, который я тестировал, с соответствующим отображением символов. – Chaosxmk

0

Наконец-то я нашел адекватное решение моей особой проблемы.

<?php 
    $enc = mb_detect_encoding($this->search_term, mb_detect_order(), true); 

    if ($enc != 'UTF-8') { 
     $this->search_term = utf8_encode($this->search_term); 
    } 
?> 
<div class="aux_title"><?php echo htmlspecialchars($this->search_term); ?></div> 
Смежные вопросы