我有问题。我在我的数据库(MySQL 5.5.20)中有一段文本,其中包含'é'和“'”等字符,在执行MySQL查询并使用echo($ ...)显示后,它们无法正常显示。我在数据库中输入的每个特殊字符都会在钻石中显示一个小问号。如果我查看数据库本身的文本,它是'é'和''',所以我认为问题不是MySQL。
我能做的一件事是str_replace所有的东西,比如“'” - > “'”在输入时,但是我必须为每个角色执行此操作。 哦,我已经包括
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
这不起作用。
希望你有所有的信息来帮助我,如果不是只说:)提前谢谢!
Milaan
答案 0 :(得分:4)
你需要拥有utf-8中的所有内容:
mysql_set_charset('utf8');
,类似于PDO中的$db->exec('SET CHARACTER SET utf8');
)答案 1 :(得分:0)
在与DB的连接成功完成多年后,我正在使用SQL查询SET NAMES utf8
。
但是当你拥有相同编码的所有东西时,这不是必要的
header('Content-Type: text/html; charset=utf-8');
和<header>
<meta name="Content-Type" value="text/html; charset=utf-8" />
)答案 2 :(得分:0)
我通常用str_replace格式化所有输入文本,用&amp; #xxx替换所有不常见的符号;等效,这对于防止注入和糟糕的html渲染实际上很有用
即。如果有人输入了html标签,他们将在你的页面中处于活动状态,等等。