在我的一個項目中,我有幾個上傳表單。由於我住在瑞典,我想將瑞典特殊字符編碼爲各自的HTML代碼,因此在顯示數據時編碼不會成爲問題。下面的代碼:str_replace不會替換特殊字符
function format_text($text){
$chars = ['å','ä','ö','Å','Ä','Ö'];
$codes = ['å','ä','ö','Å','Ä','Ö'];
foreach($chars as $key => $value){
$text = str_replace($value,$codes[$key],$text);
}
$text = str_replace("\r","\n",$text);
$text = preg_replace("!\n\n+!", "\n", $text);
$text = htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
$lines = explode("\n", $text);
foreach ($lines as $key => $line){
$lines[$key] = "<p>{$line}</p>";
}
$text = implode("\n", $lines);
return $text;
}
不管怎麼說,運行此功能後,我總是從htmlspecialchars
,我已經因爲它永遠不會取代瑞典特殊字符的理解是一個空字符串。所以,我的問題是這樣的:爲什麼不用特殊的字符替換它的各自的HTML代碼,我該如何解決它?我正在使用PHP5.4。
源代碼是否保存爲UTF-8? – Joni
@Joni是的。 'file -bi file.php'輸出'text/x-php;字符集= UTF-8'。 – Psyberion