正确回显数组 ISO-8859-1 值
Posted
技术标签:
【中文标题】正确回显数组 ISO-8859-1 值【英文标题】:echo array ISO-8859-1 values correctly 【发布时间】:2011-09-05 21:07:58 【问题描述】:我在打印数组值时遇到了麻烦,它们最初是使用 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']);
【问题讨论】:
我不懂 php,但我知道不使用 utf8_decode 来解码你说的不是 UTF-8 的东西!也许您只需要使用正确的解码功能。 不要通过编辑问题来编写解决方案;通过回答来写解决方案!是的,即使它是你自己的。 【参考方案1】:这里有两种编码:
文本的编码,在本例中为源代码。
网页的编码。确保它也设置为 ISO-8859-1。 将此元标记放在 HTML 文件的标题中以强制编码:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
【讨论】:
我在标题中定义了字符集,我在 index.php 中包含文件 language.php,index.php 在标题中包含。 如果两种编码相同,它应该可以正确显示。您确定您的文件也是 ISO-8859-1 吗?是否有可能在进行字符编码的偷偷摸摸的输出缓冲? 这很奇怪,我用那个字符集定义了两个文件,输出不正确。使用 netbeans,我也更改了所有文件的字符集。我要疯了 我正在使用 iconv 功能,但希望不必这样做。【参考方案2】:如果你想输出为 UTF-8,我建议你在你的初始 php 脚本中添加这些
ini_set("default_charset", "UTF-8");
mb_internal_encoding("UTF-8");
当然,如果需要,您可以更改为其他字符。
【讨论】:
以上是关于正确回显数组 ISO-8859-1 值的主要内容,如果未能解决你的问题,请参考以下文章
将 pandas 数据框转换为 PySpark RDD 时出现问题?
java中 可以通过new String(text.getBytes("ISO-8859-1"),"GBK")