【问题标题】:Portuguese charset problem葡萄牙语字符集问题
【发布时间】:2011-09-12 10:52:18
【问题描述】:

我对这该死的字符集感到头疼。

葡萄牙语字符集=iso-8859-1

在我的 HTML 中,我有:

<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" /> 

在我的 config.php 上:

$config['charset'] = 'ISO-8859-1'; 

我有‘café’, coffee.这个词

显示为:cafŽ.

有什么想法吗?!

提前感谢您的帮助

**编辑

我不知道这是否重要,但我正在使用 Eclipse

【问题讨论】:

    标签: php html codeigniter character-encoding


    【解决方案1】:

    Eclipse 中文件的编码设置为什么?右键单击 Eclipse 中的文件,在“属性”下检查。它必须与您的元标记中的相同。

    【讨论】:

      【解决方案2】:

      非常感谢,我相信你的回答是最好的:

      $string = 'café'; 
      utf8_decode($string); 
      

      $string = 'café'; 
      utf8_encode($string);
      

      在每个文件的标题中添加元字符集,葡萄牙字符的问题将得到解决。

      【讨论】:

        【解决方案3】:

        为什么不切换到 UTF-8?

        编辑您可能还想切换到使用实体。

        &amp;eacute; 是é

        http://www.w3schools.com/tags/ref_entities.asp

        【讨论】:

        • 现在它显示一个 ?而不是é(咖啡厅)
        【解决方案4】:

        我会先查看浏览器中的默认字符集,它可以设置为 ISO-8859-15 或 UTF8。我的浏览器编码设置为 ISO-8859-1 而不是 UTF8 时遇到了相反的问题。

        其次,这些数据是静态的还是来自数据库?例如,如果来自 mySQL,请检查数据库的排序规则,它是 latin1 还是 utf8? 如果来自 UTF8 整理数据库(或者不是 - 因为您使用的是 PHP),您可以尝试

        $string = 'café';
        utf8_decode($string);
        

        $string = 'café';
        utf8_encode($string);
        

        迁移到 UTF8 可能是一个好主意,因为 PHP 的 utf8_encode() 和 utf8_decode() 之类的函数但如果它不适合您的市场,那就是这样。

        如果 utf8_encode 或 utf8_decode 函数有效,您应该查看您的输入法和输入编码,因为您可能会在那里发现问题。

        附:我在巴西时常遇到同样的问题......我觉得你的痛苦伴侣!

        【讨论】:

          【解决方案5】:

          在这里试试这个:

          $string = 'café';
          htmlentities($string, ENT_COMPAT, 'utf-8');
          

          保重!

          【讨论】:

            【解决方案6】:

            转到项目资源管理器中的资源包,然后右键单击该文件并将字符集更改为 utf=8,然后保存设置。

            【讨论】: