【发布时间】:2013-10-11 17:19:46
【问题描述】:
我正在使用这个 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; charset=utf-8无处不在"
我还在我的 PHP 页面中使用了ini_set('default_charset', 'utf-8');,现在数据库中有正确的文本和奇怪的字符。
【问题讨论】:
-
他们不是胡言乱语,they are in UTF-8。只需正确处理字符编码(在任何地方使用 UTF-8 或将输入文本转换为您使用的编码)。
-
Starfield Technologies Mysql 中到处都没有 UTF-8 选项……至少,我看不到。有没有办法在我的 php 网页中将其设置为 UTF-8 Everywhere?我现在正在使用 utf8_general_ci。
-
可能重复stackoverflow.com/questions/6087309/…,可能 iconv() 函数会救你。
-
您可以在插入数据库之前尝试使用
mysqli_set_charset($mysqli, 'utf8');和/或$con->set_charset("utf8");。我个人最喜欢的是$con->set_charset("utf8"); -
我想通了。谢谢。我将我的网页字符集设置为处处 UTF-8:meta http-equiv="Content-Type" content="text/html; charset=utf-8 处处"