MS-word 和其他一些來源使用 CP-1252,而它又非常接近 Latin1 ('ISO-8859-1'),這造成了很多混亂。最讓我困惑的是發現我的 mySQL 預設使用 CP-1252。
如果您發現自己想要做這樣的事情,您可能會遇到麻煩
<?php
$trans[chr(149)] = '•'; $trans[chr(150)] = '–'; $trans[chr(151)] = '—'; $trans[chr(152)] = '˜'; $trans[chr(153)] = '™'; ?>
不要這樣做。千萬不要這樣做!
你可以使用
<?php
$translationTable = get_html_translation_table(HTML_ENTITIES, ENT_NOQUOTES, 'WINDOWS-1252');
?>
或者直接轉換
<?php
$output = htmlentities($input, ENT_NOQUOTES, 'WINDOWS-1252');
?>
但你的網頁可能使用 UTF-8 編碼,而你可能不希望看到 CP-1252 文字到處亂跑,所以請先修正字元編碼
<?php
$output = mb_convert_encoding($input, 'UTF-8', 'WINDOWS-1252');
$ouput = htmlentities($output);
?>