【问题标题】:How to write special characters into MySQL via PHP?如何通过 PHP 将特殊字符写入 MySQL?
【发布时间】:2010-07-22 02:28:25
【问题描述】:

在我的数据库中,某些字段的数据显示如下截图所示:

  1. http://i31.tinypic.com/2637l9f.jpg
  2. http://i27.tinypic.com/1ihh6d.jpg
  3. http://i26.tinypic.com/2yklzb4.jpg
  4. http://i31.tinypic.com/2vbshtf.jpg

我在将数据插入数据库时​​使用了mysql_real_escape_string,在显示时使用了htmlspecialchars

谁能告诉我为什么它们看起来像这样,以及解决方案是什么?

【问题讨论】:

  • 抱歉,我可能会失明,但是这种格式的数据是怎么回事?编辑:啊,在它们不是链接而是在代码块中之前。以为他是在说 URL 的存储方式和上面的一样!
  • @Stephen:当您有足够的声望时,您将能够查看/编辑其他人的消息来源。点击上面edited后面的蓝色时间戳链接看看。
  • @BalusC 感谢您的提示,尽管我已经知道了。我只是有一个头晕目眩的时刻,并认为“问题”是数据库以纯文本形式存储 url,没有为网页编码。或类似的东西。我只是希望有人嵌入图像,而不是链接到它! XD

标签: php mysql html character-encoding


【解决方案1】:

那是Mojibake。你的 PHP 和 MySQL 代码还没有准备好World Domination

要正确修复它,请通过 this cheatsheet 并确保每一层都使用 UTF-8。


mysql_real_escape_string() 基本上只会阻止您使用SQL injection attackshtmlspecialchars() 基本上只会阻止您使用XSS attacks。它们不以任何方式帮助编码或解码字符。使用的字符集对此负责。您的问题是您在使用字符集时不一致和/或您选择/使用的字符集不支持客户端输入和/或您想要使用的字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-17
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多