Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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_Text - Fatal编程技术网

PHP/MySQL特殊字符是';不能正确显示

PHP/MySQL特殊字符是';不能正确显示,php,mysql,text,Php,Mysql,Text,可能重复: 我有个问题。我的数据库(MySQL 5.5.20)中有一段文本,其中包含字符“é”和“”,在执行MySQL查询并使用echo($…)显示后,这些字符没有正确显示。对于我在数据库中输入的每个特殊字符,它都会在菱形内显示一个小问号。如果我查看数据库本身中的文本,它是一个“é”和“'”,因此我认为问题不在于MySQL 我可以做的一件事是str_替换输入中的所有字符,比如“'”-->“”,但接下来我必须对每个字符都这样做。 哦,我已经包括在内了 <meta http-equiv="C

可能重复:

我有个问题。我的数据库(MySQL 5.5.20)中有一段文本,其中包含字符“é”和“”,在执行MySQL查询并使用echo($…)显示后,这些字符没有正确显示。对于我在数据库中输入的每个特殊字符,它都会在菱形内显示一个小问号。如果我查看数据库本身中的文本,它是一个“é”和“'”,因此我认为问题不在于MySQL

我可以做的一件事是str_替换输入中的所有字符,比如“'”-->“”,但接下来我必须对每个字符都这样做。 哦,我已经包括在内了

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

但这不起作用

希望你有所有的信息来帮助我,如果不只是说:)提前谢谢


米兰

您需要拥有utf-8中的所有内容:

  • 数据库字段
  • 数据库连接(
    mysql\u set\u charset('utf8');
    在经典的mysql中,类似于PDO中的
    $db->exec('set CHARACTER set utf8');
  • 内容类型(就像您已经做过的那样)

您需要在utf-8中拥有一切:

  • 数据库字段
  • 数据库连接(
    mysql\u set\u charset('utf8');
    在经典的mysql中,类似于PDO中的
    $db->exec('set CHARACTER set utf8');
  • 内容类型(就像您已经做过的那样)

在成功连接数据库一年多之后,我就使用了SQL查询
SET NAMES utf8
。 但是,当所有内容都使用相同的编码时,这不是必需的

  • 源文件编码
  • 表列排序规则
  • 网页编码(在PHP
    标题('Content-Type:text/html;charset=utf-8');
    中)

在成功连接数据库一年多之后,我就使用了SQL查询
SET NAMES utf8
。 但是,当所有内容都使用相同的编码时,这不是必需的

  • 源文件编码
  • 表列排序规则
  • 网页编码(在PHP
    标题('Content-Type:text/html;charset=utf-8');
    中)

我通常用str#u替换所有输入文本,用&#xxx替换所有不常见的符号;同样,这对于防止注入和糟糕的html呈现非常有用


i、 e.如果有人输入html标记,他们将在您的页面中处于活动状态,依此类推。

我通常用str\u替换所有输入文本的格式,并用&#xxx替换所有不常见的符号;同样,这对于防止注入和糟糕的html呈现非常有用



i、 e.如果有人输入html标记,他们将在您的页面中处于活动状态,依此类推。

使用哪个mysql扩展?您是否尝试将字符集设置为utf-8用于数据库通信?正如jeroen已经回答的,我必须包括mysql_set_charset('utf8');在代码中:)但感谢您的回答!:)你应该标记他的答案然后结束问题对不起,我不得不“再等8分钟标记答案”:)使用哪个mysql扩展?您是否尝试将字符集设置为utf-8用于数据库通信?正如jeroen已经回答的,我必须包括mysql_set_charset('utf8');在代码中:)但感谢您的回答!:)你应该标记他的答案,然后结束问题对不起,我不得不“再等8分钟标记答案”:(据我所知,php文件本身在这方面并不重要case@Hajo我必须承认我从来没有用过非utf8文件…嗯,php文件本身只在您直接以html/php代码打印一些特殊字符时才起作用。我使用99%的ascii文件作为大多数vcs中最简单的方式,可以很容易地强制使用,并且到目前为止,以iso、unicode或任何字符集输出都没有问题,因为特殊字符是用实体编码的。mysql_set_charset('utf8');这确实奏效了,非常感谢!我已经搜索了好几个小时了,我想我已经通过把它放在META标签中修复了它。但我错了!非常感谢你!据我所知,php文件本身在这方面并不重要case@Hajo我必须承认,我从未尝试过使用非utf8文件…好吧,php文件本身只在您直接在html/php代码中打印一些特殊字符时才起作用。我使用99%的ascii文件作为大多数vcs中最简单的方式,可以很容易地强制使用,并且到目前为止,以iso、unicode或任何字符集输出都没有问题,因为特殊字符是用实体编码的;这确实奏效了,非常感谢!我已经搜索了好几个小时了,我想我已经通过把它放在META标签中修复了它。但我错了!非常感谢你!但是你不会得到一个str_replace函数,比如50行长之类的吗?我是这样做的:output=str_replace('/regex expression/',input);output=str_replace('/next regex/',output)。。。在我连续替换每个字符之前,我做了一个格式(输入)函数来调用输入。我想这也会起作用,但上面的答案更简单有效。它也不需要太多的编码:)但是谢谢你的回答:)但是你没有得到一个str_replace函数,比如50行之类的吗?我喜欢这样:output=str_replace('/regex expression/',input);output=str_replace('/next regex/',output)。。。在我连续替换每个字符之前,我做了一个格式(输入)函数来调用输入。我想这也会起作用,但上面的答案更简单有效。它也不需要更多的编码:)但是谢谢你的回答:)