【问题标题】:PHP french letters encondingPHP法语字母编码
【发布时间】:2016-08-18 08:59:11
【问题描述】:


目前,我正在使用 PHP,我正在解析 CSV 并将其保存到 DB。
我对此没有任何问题,只是我有一些法语字符,它显示不正确。
我查看了所有以前的问题,并尝试了所有建议的解决方案,但没有人解决我的问题....
此外,使用“utf8_encode”,它变得更加不可读。
在这里你可以找到该函数的所有代码:

if(date('l') == 'Thursday' or date('d') == 1)
    {
        $row = 1;
        if (($handle = fopen("C:/Users/ASUS/Downloads/Exemple_extraction.csv", "r")) !== FALSE)
        {
            $this->createTable();
            while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
            {
                if($row == 1){ $row++; continue; }
                $num = count($data);
                for ($c = 0; $c < $num; $c++)
                {
                    $dataa = (explode(';', $data[$c]));
                    $dest = str_replace(' ', '', $dataa['27']);
                    echo($dataa['27']);echo '<br>';
                    switch($dest)
                    {
                        case 'Investissement':
                            $destination = 'Investir';
                            break;

                        case 'Non défini':
                            $destination = '';
                            break;

                        case 'Résidence principale':
                            $destination = 'Habiter';
                            break;

                        case 'Résidence secondaire':
                            $destination = 'Habiter';
                            break;

                        default:
                            $destination = '';
                    }

                    $tLogt = str_replace(' ', '', $dataa['26']);
                    switch($tLogt)
                    {
                        case 'Studio':
                            $tLogt = 'studio';
                            break;

                        case '1/2 pièces':
                            $tLogt = '2P';
                            break;

                        case '2/3 pièces':
                            $tLogt = '3P';
                            break;

                        case '3/4 pièces':
                            $tLogt = '4P';
                            break;

                        default:
                            if($tLogt == '4/5 pièces' || $tLogt == '5/6 pièces' || $tLogt == '5P DUPLEX')
                            {
                                $tLogt = '5P+';
                            }
                    }

                    if(str_replace(' ', '', $dataa['9']) != '')
                    {
                        $cp = substr(str_replace(' ', '', $dataa['9']), 0, 2);
                    }
                    else
                    {
                        $cp = '';
                    }

                    DB::table(date('l') . '_' . date("d_m_Y"))
                        ->insert(['flReservataire' => $dataa['0'],
                            'flClient' => $dataa['1'],
                            'idProspect' => $dataa['2'],
                            'civility' => $dataa['3'],
                            'firstname' => $dataa['4'],
                            'lastname' => $dataa['5'],
                            'address1' => $dataa['6'],
                            'address2' => $dataa['7'],
                            'address3' => $dataa['8'],
                            'zipcode' => $dataa['9'],
                            'city' => $dataa['10'],
                            'codeInsee' => $dataa['11'],
                            'country' => $dataa['12'],
                            'flNpai' => $dataa['13'],
                            'phone' => $dataa['14'],
                            'workphone' => $dataa['15'],
                            'cellphone' => $dataa['16'],
                            'email1' => $dataa['17'],
                            'email2' => $dataa['18'],
                            'flStopMarketing' => $dataa['19'],
                            'age' => $dataa['20'],
                            'program' => $dataa['21'],
                            'region' => $dataa['22'],
                            'department' => $dataa['23'],
                            'seller' => $dataa['24'],
                            'typeLogt' => $dataa['25'],
                            'tailleLogt' => $dataa['26'],
                            'destination' => $dataa['27'],
                            'apport' => $dataa['28'],
                            'budget' => $dataa['29'],
                            'timelimit' => $dataa['30'],
                            'idOrigine' => $dataa['31'],
                            'typeContact' => $dataa['32'],
                            'typeAction' => $dataa['33'],
                            'dateAction' => $dataa['34'],
                            'comment' => $dataa['35'],
                            'typeActionFuture' => $dataa['36'],
                            'dateActionFuture' => $dataa['37'],
                            'levier' => $dataa['38'],
                            'support' => $dataa['39'],
                            'enreg' => $dataa['40'],
                            'destination_good' => $destination,
                            'typologie_good' => $tLogt,
                            'cp_good' => $cp,]);
                }
            }
            fclose($handle);
            $this->sendMail('emailSuccess');
        }
        else
        {
            $this->sendMail('emailError');
        }
    }


在所有“回声”中,我遇到了问题..
还有其他建议吗?
非常感谢
亲切的问候

【问题讨论】:

  • 是的,但它没有帮助......
  • 您检查过数据库中的数据是否正确吗? (phpmyadmin 等)。如果不是,那么您的导入就是问题,否则,检索就是问题。
  • 问题是,当我从 csv 获取数据时,它没有正确显示。正如我所说的,存在编码问题

标签: php encoding character-encoding character


【解决方案1】:

我的假设是 CSV 文件使用本地编码。要将其加载到正确的内部表示中,您必须使用 iconv() 从本地编码(可能是一些 ISO-8859 或 WIN-12xx)到 UTF8。

此外,要找出正确的编码,请使用一些支持切换编码的体面的文本编辑器。然后只需找到一个使源代码可读的选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 2013-11-28
    • 2011-01-08
    • 2013-11-18
    相关资源
    最近更新 更多