2012-09-12 71 views
0

我正在执行以下语句。在php中编码一个字符串

$mystring = <<<EOT 
UPDATE sites_niche SET `short_review` = REPLACE(`short_review`, '’',"'"); 
EOT; 

但是,它不工作,因为它会工作,如果我把它放在我的phpmyadmin。罪魁祸首是这个不好的字符’这个字符根本就没有被替换。

我试图打印更新语句到屏幕上,我得到这个:

UPDATE sites_niche SET `short_review` = REPLACE(`short_review`, '’',"'"); 

我认为字符串获取只要它进入数据库乱码。我的问题是 如何编码这些字符集’以便它们一旦进入数据库就不会出现乱码。

+2

请有http://www.joelonsoftware.com/articles/的读Unicode.html和https://dev.mysql.com/doc/refman/5.0/en/charset.html – VolkerK

回答

1

有我能在你的帖子看到两个问题。

如果你不知道这是你可以使用PHP mb_detect()函数来检查的字符编码格式,并从PHP中使用所识别的格式的解决方案,下面

  1. 更新到MySQL的编码格式

解决方案: - 你的PHP代码它负责连接MySQL数据库应该使用

mysql_set_charset (string $charset [, resource $link_identifier = NULL ]) 

2。当你PRI NT出现乱码

解决方案: - 必须设置页面中的DOCTYPE声明的字符编码,否则你会看到这个乱码

+0

我不能猜测它的编码不工作..看到这个:http://stackoverflow.com/questions/ 910793/detect-encoding-and-make-everything-utf-8 –

+0

嗯我有一个类似的问题,同时保存谷歌翻译把内容放到db中,修复mysql的charset解决了这个问题。正如你所说,我知道谷歌服务于UTF-8,看起来我必须破解phpmyadmin并回复你并解释你的查询如何在phpmyadmin中运行,WRB很快 –

+0

什么是你正在使用的Collat​​ion列mysql在你正在运行这个查询的表中 –