MYSQL字符如(',“,&)等显得不同

时间:2011-06-09 20:50:02

标签: php mysql database phpmyadmin

我正在保留一个由我的用户自动填充的数据库。但是当有像My Father's Will这样的输入时。它将进入数据库,如:My Father's Will

这不是我想要的。有人可以告诉我如何启用这些特殊字符,或者可能是为了不向我的用户显示这些丑陋的字符。

我使用PHP,MySQL服务器和PHPMyAdmin作为数据库管理工具。

5 个答案:

答案 0 :(得分:2)

看起来'像HTML字符一样被转义。我猜您正在进行错误的转义,例如使用htmlentities代替mysql_real_escape_string。如果此信息无效,请发布您的代码。没有就会猜测。

答案 1 :(得分:1)

从数据库中提取值时,请使用htmlspecialchars_decode()。这会将所有html特殊字符转换回常规文本。

$str = 'My Father's Will';
echo htmlspecialchars_decode($str);

将输出:

My Father's Will

答案 2 :(得分:0)

我无法确定你在问什么,因为“我父亲的遗嘱”和“我父亲的遗嘱”完全相同?

但这似乎是一个与PHP中的字符串转义或MySQL数据库中的冲突编码相关的问题,请尝试查看两者并随意指出您的问题。

答案 3 :(得分:0)

听起来你可能正在逃避(例如php的htmlentities())你在输入数据库的途中的输入。正确的做法是仅在输出回屏幕时将其转义。

答案 4 :(得分:0)

您的代码中很可能会在某处调用htmlspecialchars(..., ENT_QUOTES),这会将'"编码为字符实体。如果它们以编码形式存在于数据库中,并且最终用户看到了字符实体,那么您正在进行双重编码,而您的脚本输出类似于&x27;