将特殊字符保存到数据库中

时间:2012-11-13 01:28:14

标签: php html character-encoding

我目前正在为我的网站使用html和php,但是在textarea中保存时遇到了这个问题。

每次我使用带有'和'这样的特殊字符的不同字体时,它会像 (带有问号的黑色钻石)一样保存。这通常发生在我从其他网站复制文本或复制文本文档时然后粘贴它,但是当我输入textarea时它工作正常。

示例:

  

不要回答任何问题并且是关心

的人

这是我的HTML代码

    <form action="savepost.php" method="POST">
    <fieldset style="width:600px; height:580px">
    <br><strong>Title</strong> <input id="posttitle" name="posttitle" type="text">
    <br><br><strong>Content</strong>
    <br><textarea id="postform" name="postform" style="width:600px; height:450px; resize: none"></textarea>
    <br><input type="submit" value="Post" id="postbutton"/>
    </fieldset>
    </form>

Mysql Insert

    $title = strtolower(mysql_real_escape_string($_POST['posttitle']));
    $post_title = preg_replace('/[^a-zA-Z0-9\s]/','', $title);
    $timestamp=time(); 
    $post = $_POST['postform'];

    $newtitle= preg_replace('/\\s+/', ' ',$post_title);
    $striptitle = trim($newtitle, ' ');
    $url = strtolower($timestamp.'/'.str_replace(" ", "-", $striptitle));

    mysql_query("INSERT INTO blog (title, url, timestamp, post) VALUES ('$title', '$url', '$timestamp', '$post')");

这可能是什么问题?

2 个答案:

答案 0 :(得分:1)

这是一个字符编码问题 - 如果您要从桌面程序(MS Word)复制内容,那么Word会将有角度的引号放入直引号中,但如果HTML页面的编码不正确则无法显示该内容它将显示如上所示。

尝试查看您网页的标题

<meta charset="utf-8" />

或类似的东西

如果不是utf-8或遗失,请尝试更改它,看看会发生什么。

答案 1 :(得分:0)

您是否从Microsoft Word复制了一些此文本?默认情况下,Word会将您的常规“直接”引号更改为“卷曲”引号。有turn this feature off的方法。要修复您的文本,您可能需要进行查找/替换。