如何用PHP删除这些(?)类型的字符?

时间:2012-01-14 05:43:03

标签: php mysql codeigniter

我正在使用CodeIgniter / MySQL开发一个应用程序。昨晚我将标题存储到我的数据库中 “HTML5的占位符属性”。 在我从数据库中检索显示后存储它显示一些奇怪的字符,如下所示: “HTML5â占位符属性”。

如何避免这些奇怪的角色?

3 个答案:

答案 0 :(得分:0)

您可能只需确保将存储数据的数据库表设置为以UTF-8存储,并且显示数据的html页面也应明确设置为UTF-8编码。

您的示例应用程序URL(seekphp.com/look/phpquery-jquery-port-to-php/1758)显示(通过firefox for firefox):

Response Headers
Date    Sat, 14 Jan 2012 06:26:31 GMT
Server  Apache/2.2.19 (Unix) mod_ssl/2.2.19 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
X-Powered-By    PHP/5.2.17
Keep-Alive  timeout=5, max=100
Connection  Keep-Alive
Transfer-Encoding   chunked
Content-Type    text/html

但正确的UTF-8编码输出将显示最后一行

Content-Type    text/html; charset=UTF-8

您可以通过在文档HEAD部分中输出元标记对HTML进行编码:

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

或者您可以让PHP在标题中设置它:

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

答案 1 :(得分:0)

当我从文本编辑器复制数据并将其粘贴到phpmyadmin时,我遇到了类似的问题。如果您这样做,那么您的文本编辑器可能正在使用不同的编码。我建议你将数据复制到一个简单的文本编辑器,如记事本,并手动替换撇号。手动替换'with',它应该可以正常工作。

答案 2 :(得分:-1)

我遇到与utf-8字符集相关的问题。我一直在网络上(好吧,不完全),但现在已经有一段时间了,最​​好的建议是将标题字符集设置为“UTF-8”。

但是,我正在使用xampp在我的机器上本地开发我的Web应用程序(有时候是wamp,以便在调试我的代码时区分这两者)。一切都很好=)。但是一旦我在网上上传,结果就不是那种爵士(如果你把标题设置为不同的字符集,如“iso-8859-1”,你会得到的那种错误)。 我的代码中的每个头都有UTF-8作为默认字符集,但我仍然有相同的“象形文字的东西”。然后你们给了我的想法,问题不是我的代码,而是运行它的php.ini ..结果我的本地机器运行php 5.5和我上传我的web应用程序的cpanel运行本机php 5.3 。 好吧,当我改变我的cpanel默认设置为PHP 5.5的php版本时,相信你们我们=)它就像一个魅力就好像就像我在机器的本地主机那样。

注意:请问,如果你遇到和我一样的问题,请确保你的PHP是5.5版本。我发布这个因为我觉得你们。干杯!