Php 如何防止智能引号符号写入数据库?
我正在使用此HTML将用户输入发送到我的数据库: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 当我查看数据库描述中的记录时,是这样的:这是一本你不知道的书™我不想放下浪漫的时光 应
<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”