知道为什么会这样吗?
它看起来主要是用撇号和连字符发生的。如果我能解决这个问题有什么想法吗?我从数据库中提取数据并将其打印到页面上,例如:
<div class="block">
<?=$details['agenda'] ?>
</div>
知道为什么会这样吗?
它看起来主要是用撇号和连字符发生的。如果我能解决这个问题有什么想法吗?我从数据库中提取数据并将其打印到页面上,例如:
<div class="block">
<?=$details['agenda'] ?>
</div>
正如其他评论者可能提到的,这是一个字符编码问题。如果幸运的话,您可以强制您的 HTML 页面以 UTF-8 呈现,这将解决它。
不幸的是,如果您不走运,您会发现这些字符以错误的编码存储在数据库中。或者数据库可能会转换它们。或者,字符编码数据可能已经沿路径被破坏了!无法提前知道这些角色在哪里受损。
我知道解决此类问题的最佳方法是强制您的每一步都遵循 UTF-8 内容编码。例如,您可能会经历如下步骤:
nvarchar
(或您的数据库支持的任何 unicode 类型)。但是,解决这个问题非常棘手!很久以前,我曾经有这样写“检测和修复”例程的习惯:
$smartquotes = array("”", "“");
str_replace($smartquotes, '"', $mytext);
你当然知道问题出在哪里——我会不断发现我必须修复的新角色。Microsoft Word 喜欢处理大量不寻常的字符——版权、注册标记、撇号、连字符等等。我会不断地添加这个功能,一遍又一遍,直到我发疯。所以现在我只是通过我的整个内容交付路径并强制所有内容遵守 UTF-8 规则;在大多数情况下,这似乎可以解决它。
祝你好运!