【问题标题】:Special Characters In Php and MySQLPHP 和 MySQL 中的特殊字符
【发布时间】:2013-03-26 18:23:13
【问题描述】:

我在 PHP 中遇到了一些特殊字符的问题。我在 mysql (utf8_hungarian_ci) 中有一个表,其中包含一些带有特殊字符的文本,如 á、á、Ó、Ö、ö、ü,我想在我的页面上显示此文本。我已经测试过:

$text = htmlentities($text); //to convert the simple spec chars
$search = array("& otilde;","&O tilde;","& ucirc;","&U circ;");
$replace = array("& #337;","& #336;","& #369;","& #368;");
$text = str_replace($search, $replace, $text);
echo $text;

但此代码仅在 $text 未从数据库中设置时才有效。如果我使用此代码并且我的 $text 是从数据库中选择的,它不会显示任何文本,并且如果我只使用: 回声$文本;没有 htmlentities 和替换

我得到这样的字符:�

我知道对此存在一些问题,并且我尝试了接受的答案,但它仍然不起作用,所以如果你愿意并且如果你有时间,请帮助我。不管怎样,谢谢你。祝大家有个美好的一天!

【问题讨论】:

  • 你不是在几分钟前问过这个Question吗?
  • htmlspecialchars_decode 呢?
  • @phpNoOb 不知道是不是也是他...
  • 这是我第一次问这个问题。没看到你说的问题,不知道有没有用处

标签: php mysql html-entities


【解决方案1】:

还可以尝试在您的标头中设置为使用 UTF-8 编码。

在您的 PHP 文件中,添加

header('Content-type: text/html; charset=utf-8'); 

以及在<meta> 标签中指定编码为UTF-8,以确保您告诉浏览器。看看它是否能解决问题。

以及在您的 meta 标记中包含 UTF-8 编码。

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

编辑:

  1. 如果您有权访问 Apache 配置,请查看 AddDefaultCharset 是否设置为其他编码。
  2. 尝试使用mysql_set_charset()(如果您使用的是 MySQLi,则为 mysqli_set_charset())。

【讨论】:

    【解决方案2】:

    试着把它放在你的 html 标题中:

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

    (另外,您可能需要将文件保存为“utf-8”文件编码)

    .

    其次,您可以使用它来尝试翻译或删除在您的情况下总是打印出来的令人不安的字符:

    $str_out = @iconv("ISO-8859-1", "UTF-8//TRANSLIT//IGNORE", $str_in); 
    

    【讨论】:

    • 仍然没有显示任何东西。我不明白为什么我的数据库没有收到相同的文本。
    • 您确定它在数据库中吗?也许那些字符在此之前被过滤掉了。另外,您是否使用了任何消毒功能?或任何进行编码的特殊字符函数(htmlspecialchars_encode)?通常,双重编码会破坏数据..
    • 我确定。如果我在我的数据库中存储任何带有普通字符的文本,然后打印它,它就可以工作,当该文本中有特殊字符时,我会看到普通字符,而不是特殊字符,我会看到像这样的符号。我没有使用其他消毒功能。无论如何感谢您的尝试。
    • 好的,试试这个:$str_out = @iconv("ISO-8859-1", "UTF-8//TRANSLIT//IGNORE", $str_in);
    【解决方案3】:

    这是一个略显笼统的答案,但请阅读我写的这篇关于 PHP/MySQL 堆栈中常见字符编码陷阱的文章,如果您仍然遇到问题,让我们尝试解决它们。

    http://webmonkeyuk.wordpress.com/2011/04/23/how-to-avoid-character-encoding-problems-in-php/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-12
      • 2015-05-08
      • 1970-01-01
      • 2011-12-21
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      相关资源
      最近更新 更多