在php

时间:2015-11-09 08:52:58

标签: php encoding

我在php中从MySQL检索数据并将其发布到客户端: 如果我使用select * from users LIMIT 8; 没有问题..但是当select * from users LIMIT 9;检索到的最后一个数据打破了页面..当我在php中调试时,我可以看到这些数据看起来也很好:

1 = "CN=User1,OU=ARGE,OU=Personel,OU=Kullanicilar,OU=CompanyName,DC=company,DC=intra 2 ="CN=User2,OU=ARGE,OU=Personel,OU=Kullanicilar,OU=CompanyName,DC=company,DC=intra 3 ="CN=User3,OU=ARGE,OU=Personel,OU=Kullanicilar,OU=CompanyName,DC=company,DC=intra 4 ="CN=User4,OU=ARGE,OU=Personel,OU=Kullanicilar,OU=CompanyName,DC=company,DC=intra 5 ="CN=Öney,OU=ARGE,OU=Personel,OU=Kullanicilar,OU=CompanyName,DC=company,DC=intra

但是没有从PHP返回的数据..很明显'Ö'字符导致了这个但是我不明白为什么它甚至看起来是真的并且我的字符编码是:

              我的PageÖÖ

这也在我的页面顶部:

header('Content-Type: text/html; charset=ISO-8859-1');

当我在mypage.php的html中输入标题'4 Tasks tocompleteÖÖŞŞŞ'时,它看起来像:  '4个任务要完成??? ??? 在stackoverflow中它看起来很好,我想要同样的我...现在无法弄清楚html或php或两者中的问题?

编辑:因为我在脚本变量中看到'Öney'字符我认为在php页面中存在问题..

我的连接设置:

$this->dbh = new PDO('mysql:host=localhost;dbname=webfilter;port=3306;connect_timeout=15', 'root', 'company');
            $this->dbh->exec("set names utf8");

2 个答案:

答案 0 :(得分:1)

您在meta中将字符集指定为 UTF-8

<meta charset="utf-8"/>

但您在PHP中指定 ISO-8859-1

header('Content-Type: text/html; charset=ISO-8859-1');

您需要具有一致性,更改PHP标头功能以将字符集设置为UTF-8:

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

可能会有所帮助的其他步骤:

  1. 将文件编码设置为UTF-8。

  2. 将表格列设置为UTF-8(utf8-general通常有效)。

  3. 连接数据库后运行查询SET NAMES utf8

答案 1 :(得分:0)

更改

header('Content-Type: text/html; charset=ISO-8859-1');  

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

在HTML中,charsetutf-8,但它在PHP中有所不同。确保它们是相同的。