回声数组ISO-8859-1值正确

时间:2011-05-31 23:12:59

标签: php

我在打印数组值时遇到麻烦,它们最初是用ISO-8859-1编码的,当它们回显时它们以“?”显示。那太烦人了!

我将字符集定义为ISO-8859-15

$lang = array();

$lang['HOMEPAGE'] = 'âéíó';

echo $lang['HOMEPAGE'];

result: ????

任何提示?

以前使用utf8_decode();但似乎没有解决我的问题。

编辑:

我很好,我为ISO-8859-15定义了字符集,但是我在html标题之前包含了带有“áúóá”字符的文件,因为cookie交互,尝试使用ob_start在主体上使用cookie但是错误仍然存​​在,使用header()函数定义charset并且运行良好,其他解决方案是:

echo iconv('ISO-8859-1', 'UTF-8', $lang['PARAGRAFO1']);

2 个答案:

答案 0 :(得分:1)

这里有两种编码方式:

  1. 文字的编码,在本例中为源代码。

  2. 网页的编码。确保它也设置为ISO-8859-1。 将此元标记放在HTML文件的标题中以强制执行编码:

    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
    

答案 1 :(得分:0)

如果您想输出为UTF-8,我建议您在初始PHP脚本中添加

ini_set("default_charset", "UTF-8");
mb_internal_encoding("UTF-8");

当然,如果需要,您可以更改为其他字符。