2014-04-24 58 views
0

我正在使用具有基本搜索功能的網站,以便使用ajax搜索產品並顯示搜索結果。但是,由於我理解的原因,如果搜索包含任何特殊字符(ie. é, è, ê),該字符將被替換爲一個框。我無法弄清楚究竟哪裏出了問題,爲什麼這隻會影響IE瀏覽器。無法在IE中顯示特殊字符

代碼:

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

The site操作使用Joomla是否有幫助/改變任何東西。

+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>