1

我的 PHP 应用程序将我的撇号字符更改为 â��

我的罪行是什么?

4

2 回答 2

4

单击 Microsoft Office 按钮 ,然后单击 Word 选项。

单击校对,然后单击自动更正选项。

在“自动更正”对话框中,执行以下操作:

单击键入时自动套用格式选项卡,然后在键入时替换下,选中或清除带有“智能引号”的“直引号”复选框。

单击“自动套用格式”选项卡,然后在“替换”下,选中或清除“直引号”和“智能引号”复选框。

哦,如果你必须:

<?php 

function convert_smart_quotes($string) 
{ 
$search = array(chr(145), 
                chr(146), 
                chr(147), 
                chr(148), 
                chr(151)); 

$replace = array("'", 
                 "'", 
                 '"', 
                 '"', 
                 '-'); 

return str_replace($search, $replace, $string); 
} 

?>

替代替换以保留它们给像大卫哈克尼斯这样的人

<?php 

$replace = array('&lsquo;', 
             '&rsquo;', 
             '&ldquo;', 
             '&rdquo;', 
             '&mdash;'); 

?>
于 2011-02-21T20:07:41.407 回答
1

您需要确保您的服务器在Content-Type标头上发送 UTF-8 字符集。花引号使用超过一个字节,因此您需要一个适当的字符集来反映这一点。如果您的服务器未在标头中发送字符集,大多数浏览器将假定您使用的是标准 ISO-8859 字符集,每个字符仅使用一个字节,这表明您仅从输入的一个字符中获取 3 个字符。

如果你使用 Apache,你应该在 httpd.conf 中设置你的默认字符集:

AddDefaultCharset UTF-8

如果您无权访问您的服务器配置,您可以在输出任何内容之前从 php 发送一个标头。

header('Content-Type: text/html; charset=UTF-8');
于 2011-02-21T21:54:15.673 回答