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);
?>