mysql_real_escape_string和撇号问题

时间:2010-12-20 10:00:43

标签: php mysql encoding mysql-real-escape-string apostrophe

所以我一直在使用mysql_real_escape_string将数据插入我的数据库......但是当我这样做时,它用符号“

”替换所有撇号

所以不是显示它,而是显示它.......

当我从数据库读回来时,有没有办法将这些转换成撇号?

3 个答案:

答案 0 :(得分:2)

这在某种程度上是一些字符编码问题。

因为在UTF-8中,(U + 2019)使用0xE28099进行编码。这表示Windows-1252中的字符â(0xE2),(0x80)和(0x99)。

因此,您似乎忘记了specify your output character encoding properly,以便浏览器使用其默认字符编码Windows-1252。

答案 1 :(得分:1)

在PHP中将mysql_set_charset应用于UTF-8。

答案 2 :(得分:0)

确保您的数据库和应用程序使用相同的字符编码。

在二进制文件中,'的值与’相同,因此您需要确保编码设置相同。

在PHP应用程序中,您可以使用以下两行指定它。

define(‘DB_CHARSET’, ‘utf8′);
define(‘DB_COLLATE’, ”);

这会将您的应用程序设置为使用UTF-8字符集,您必须确保该字符集与数据库的排序规则相匹配,然后您的问题就会消失。

您可以使用mysql_set_charset函数以编程方式更改数据库字符集。