Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php â€;mysql数据库中的字符_Php_Mysql - Fatal编程技术网

Php â€;mysql数据库中的字符

Php â€;mysql数据库中的字符,php,mysql,Php,Mysql,将一些值存储在mysql数据库中,使用mysql\u real\u escape\u string($value)对输入进行清理,结果显示良好。然而,在对数据库执行直接查询时,我在使用此表单编辑的每个文本字段上都看到了类似于的字符。这是怎么发生的?当我在网页上显示值时,它不会显示,但我如何防止这些字符出现呢 我看了这个问题:它似乎对在输入中设置字符名有一些建议,但是我如何才能一次性解决这个问题呢?我相信更新这些值的人是直接从Microsoft Word复制和粘贴的,所以我确信这与“智能引号”和其

将一些值存储在mysql数据库中,使用
mysql\u real\u escape\u string($value)
对输入进行清理,结果显示良好。然而,在对数据库执行直接查询时,我在使用此表单编辑的每个文本字段上都看到了类似于
的字符。这是怎么发生的?当我在网页上显示值时,它不会显示,但我如何防止这些字符出现呢


我看了这个问题:它似乎对在输入中设置字符名有一些建议,但是我如何才能一次性解决这个问题呢?我相信更新这些值的人是直接从Microsoft Word复制和粘贴的,所以我确信这与“智能引号”和其他MS Word喜欢使用的奇特格式有关

正如您链接的答案所示,它来自PHP,默认情况下,PHP使用拉丁1编码连接到mysql。因此,数据没有正确地插入到数据库中。 另一个问题是,如果您在php中查询回数据,您将得到正确的数据,因为它们是以编码相同的方式“解码”的。但若您在数据库中执行直接查询(比如,在控制台上使用mysql客户端),则数据似乎已损坏

这就是为什么答案是先查询“SET NAMES UTF8”再查询其他内容。 您可以对mysql服务器进行参数化,以便在任何连接上强制使用utf8。我看不到任何其他解决方案。

也请阅读此内容