我使用这个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无处不在”
我在PHP页面中也使用了ini_set('default_charset', 'utf-8');
,现在数据库中有正确的文本,现在有奇怪的字符。
答案 0 :(得分: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
更多资源:
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) 作者:Joel Spolsky
Ligaya Turmelle的