mysql_real_escape_string 和撇号问题
所以我一直在使用 mysql_real_escape_string 将数据插入我的数据库...但是当我这样做时,它会用符号 ' 替换所有撇号,
所以不是显示它,而是显示它...... 当我从数据库读回时,
有没有办法将这些“重新转换为撇号”?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
确保您的数据库和应用程序使用相同的字符编码。
在二进制中,
'
的值与'
相同,因此您需要确保编码设置相同。在您的 PHP 应用程序中,您可以使用以下两行来指定这一点。
这会将您的应用程序设置为使用 UTF-8 字符集,您必须确保该字符集与数据库的排序规则匹配,然后您的问题就会消失。
您可以使用
mysql_set_charset
函数以编程方式更改数据库字符集。Ensure your database and application are using the same character encoding.
In binary,
'
is identical in value to’
, so you need to ensure the encoding is set the same.In your PHP application, you can specify this with the following two lines.
This sets your application to use UTF-8 character set, which you must ensure matches your database's collation, then your problem will go away.
You can programatically change the database character set with the
mysql_set_charset
function.这在某种程度上是一些字符编码问题。
因为在UTF-8中,
'
(U+2019)是用0xE28099编码的。它代表 â (0xE2)、€
(0x80) 和™
(0x99) /en.wikipedia.org/wiki/Windows-1252" rel="nofollow">Windows-1252。所以看来您只是忘记正确指定您的输出字符编码< /a> 以便浏览器使用其默认字符编码 Windows-1252。
This is some character encoding issue in some way.
Because in UTF-8,
’
(U+2019) is encoded with 0xE28099. And that represents the charactersâ
(0xE2),€
(0x80), and™
(0x99) in Windows-1252.So it seems that you just forgot to specify your output character encoding properly so that the browser uses its default character encoding Windows-1252 instead.
将
mysql_set_charset
应用到 UTF-8在你的 PHP 中。Apply
mysql_set_charset
to UTF-8 in your PHP.