2013-09-28 68 views
-1

我將包含城市名稱的數組放入會話變量中。陣列的將session var轉換爲javascript時丟失特殊字符var

示例: 聖泰特,QC 聖埃米爾,QC 聖艾黛爾,QC 聖阿加特烏維-DES-德蒙,QC

當我變量數組轉換該會話爲一個JavaScript陣列

var availableTags = <?php echo json_encode($_SESSION['villeDB']) ?>; 

的陣列看起來像現在這樣: 聖 - 泰特,QC 空 空 聖阿加特 - 德 - 德蒙,QC

如何在轉換我的城市名稱時保留特殊字符?

+0

試試這個。 ''var echoTags = <?php echo json_encode(htmlspecialchars(「<?php echo $ _SESSION ['villeDB'];?>」,ENT_QUOTES))?>;'' – Roopendra

回答

0

json_encode要求以UTF8編碼字符串。

個人而言,我喜歡用單字節字符集編程。總的來說,它只是少了一點頭痛。但在這種情況下,我有一個幫手功能:

function json_output($json) { 
    if(is_array($json)) 
    array_walk_recursive($json,function(&$a) {if(is_string($a)) $a=utf8_encode($a);}); 
    elseif(is_string($json)) 
    $json = utf8_encode($json); 
    $j = json_encode($json,true); 
    return $j; 
}