正确回显数组 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")

代码内的 jQuery ISO-8859-1 编码

使用来自网络的编码 ISO-8859-1 解析 XML

使用 iso-8859-1 在 wildfly 中打开 ucanaccess/jackcess 数据库

如何将汉字转换为iso-8859-1的字符串 - PHP进阶讨论