Php HTML中的(?)标记。来自数据库内容的编码问题?
知道为什么会这样吗 这看起来主要是用撇号和连字符。我能解决这个问题吗?我从数据库中提取数据并将其打印到页面上,如下所示:Php HTML中的(?)标记。来自数据库内容的编码问题?,php,sql,sql-server,sql-server-2005,Php,Sql,Sql Server,Sql Server 2005,知道为什么会这样吗 这看起来主要是用撇号和连字符。我能解决这个问题吗?我从数据库中提取数据并将其打印到页面上,如下所示: <div class="block"> <?=$details['agenda'] ?> </div> 正如其他评论者可能提到的,这是一个字符编码问题。如果幸运的话,您可以强制您的HTML页面以UTF-8呈现,这将解决这个问题 不幸的是,如果运气不好,您会发现字符以错误的编码存储在数据库中。或者数据库会转换它
<div class="block">
<?=$details['agenda'] ?>
</div>
正如其他评论者可能提到的,这是一个字符编码问题。如果幸运的话,您可以强制您的HTML页面以UTF-8呈现,这将解决这个问题 不幸的是,如果运气不好,您会发现字符以错误的编码存储在数据库中。或者数据库会转换它们。或者可能是字符编码数据在路径上被破坏了!没有办法事先知道这些角色在哪里被破坏了 我所知道的解决此类问题的最佳方法是强制您的每一步都遵循UTF-8内容编码。例如,您可能会经历以下步骤:
$smartquotes = array("”", "“");
str_replace($smartquotes, '"', $mytext);
nvarchar
(或数据库支持的任何Unicode类型)$smartquotes = array("”", "“");
str_replace($smartquotes, '"', $mytext);
当然你知道问题是什么-我会不断发现我必须修复的新角色。MicrosoftWord喜欢使用大量不寻常的字符——版权、注册标志、撇号、连字符等等。我会不断地增加这个函数,一次又一次,直到我发疯。所以现在,我只是通过我的整个内容交付路径,强迫一切遵守UTF-8规则;在大多数情况下,这似乎可以解决问题
祝你好运 您在表格中使用的字符集是什么?也可以尝试向元标记中添加(假设您使用utf-8),它们是非ascii字符,需要为HTML转义。您可以找到这些的表格和图表,要修复它,您可以执行查找替换或指定另一个字符表,如utf-8。