我在打印数组值时遇到了问题,它们最初是用ISO-8859-1编码的,当得到响应时,它们会显示为"?"。太烦人了!
我有定义为ISO-8859-15 的字符集
$lang = array();
$lang['HOMEPAGE'] = 'âéíó';
echo $lang['HOMEPAGE'];
result: ????
有什么提示吗?
它曾经工作过,使用utf8_decode();但似乎不能解决我的问题。
编辑:
我很好,我为ISO-8859-15定义了字符集,但由于cookie交互,我在html头之前包含了带有"áúóá"字符的文件,试图使用ob_start在主体上使用cookie,但错误仍然存在,用header()函数定义了字符集中,效果很好,其他解决方案是:
echo iconv('ISO-8859-1', 'UTF-8', $lang['PARAGRAFO1']);
这里有两种编码:
-
文本的编码,在本例中为源代码。
-
网页的编码。确保它也设置为ISO-8859-1。将这个元标记放在HTML文件的头中以强制编码:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
如果你想以UTF-8输出,我建议你在你的初始php脚本上添加这些
ini_set("default_charset", "UTF-8");
mb_internal_encoding("UTF-8");
当然,如果需要,您可以更改为其他字符。