我正在使用这个HTML将用户输入发送到我的数据库:
<textarea name="description" id="description" cols="30" rows="15"><?php echo $description; ?></textarea>
我用$description = $_POST['description'];
解析它,并使用INSERT INTO
将其插入我的Mysql数据库中
当我查看数据库描述中的记录时,是这样的:“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;字符集=UTF-8无处不在"
我还在我的PHP页面中使用了ini_set('default_charset', 'utf-8');
,现在数据库有正确的文本和现在奇怪的字符。
您应该对所有内容使用 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 和字符集的绝对最低要求(没有任何借口!作者:乔尔·斯波尔斯基
角色集吸吮 由 Ligaya Turmelle