Php 如何防止智能引号符号写入数据库?

Php 如何防止智能引号符号写入数据库?,php,html,mysql,Php,Html,Mysql,我正在使用此HTML将用户输入发送到我的数据库: <textarea name="description" id="description" cols="30" rows="15"><?php echo $description; ?></textarea> 我用$description=$\u POST['description']解析它并使用insert-into 当我查看数据库描述中的记录时,是这样的:这是一本你不知道的书™我不想放下浪漫的时光 应

我正在使用此HTML将用户输入发送到我的数据库:

<textarea name="description" id="description" cols="30" rows="15"><?php echo $description; ?></textarea>

我用
$description=$\u POST['description']解析它
并使用
insert-into

当我查看数据库描述中的记录时,是这样的:
这是一本你不知道的书™我不想放下浪漫的时光

应该是:
“这是一本你不想放下的书……”浪漫时代

问题:如何将智能引号和省略号(…)保存到数据库中,而不将它们转换为胡言乱语

解决方案:我发现对我有效的解决方案是将我的html页面到处改为UTF-8,这样记录就可以正确地显示在页面上。尽管如此,记录中仍然包含一些奇怪的字符。下面是html代码:meta http equiv=“Content Type”Content=“text/html;charset=utf-8 everywhere”


我还使用了
ini_集('default_charset','utf-8')
在我的PHP页面中,现在数据库中有了正确的文本和奇怪的字符。

您应该使用
字符集=utf8
来处理所有内容:

  • MySQL数据库定义

    CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATION utf8_general_ci;
    
    CREATE TABLE mytable ( ... ) CHARACTER SET = utf8 COLLATION utf8_general_ci;
    
  • MySQL表定义

    CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATION utf8_general_ci;
    
    CREATE TABLE mytable ( ... ) CHARACTER SET = utf8 COLLATION utf8_general_ci;
    
  • MySQL会话

    SET NAMES utf8;
    
  • Apache虚拟主机设置

    AddDefaultCharset utf-8
    
  • HTML演示文稿

    Content-Type: text/html; charset=utf-8
    
更多资源:

乔尔斯波尔斯基


Ligaya Turmelle

他们不是胡言乱语。只要正确处理字符编码(在任何地方使用UTF-8或将输入文本转换为您使用的编码)。Starfield Technologies Mysql中没有UTF-8 everywhere选项……至少,我看不到。在我的php网页中,有没有办法在任何地方都将其设置为UTF-8?我现在正在使用utf8\u general\u ci。可能重复,可能iconv()函数会帮助您。您可以尝试使用
mysqli\u set\u字符集($mysqli,'utf8')和/或
$con->set_字符集(“utf8”)插入数据库之前。我个人最喜欢的是
$con->set_字符集(“utf8”)我想出来了。谢谢我将我的网页字符集设置为UTF-8 everywhere:meta http equiv=“Content Type”Content=“text/html;charset=UTF-8 everywhere”