0

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

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

我解析它$description = $_POST['description'];并将其插入到我的Mysql数据库中INSERT INTO

当我查看数据库描述中的记录时,是这样的:“This is one of those books that you don’t want to put down …†Romantic Times

它应该是:“This is one of those books that you don’t want to put down …” Romantic Times

问题:如何将智能引号和省略号 (...) 保存到我的数据库中而不会将它们转换为乱码?

已解决:我发现对我有用的解决方案是将我的 html 页面更改为处处的 UTF-8,以便记录可以正确显示在页面上。记录仍然包含奇怪的字符。这是 html 代码: meta http-equiv="Content-Type" content="text/html; charset=utf-8 无处不在"

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

4

1 回答 1

2

你应该使用CHARACTER SET = utf8一切:

  • MySQL 数据库定义。

    CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATION utf8_general_ci;
    
  • MySQL 表定义。

    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
    

更多资源:

每个软件开发人员绝对、绝对必须了解 Unicode 和字符集(没有任何借口!) 作者:Joel Spolsky

Ligaya Turmelle 的角色集很烂

于 2013-10-11T17:28:53.777 回答