Character encoding for French Accents

2020-03-01 06:42发布

问题:

I'm developing my first website for a French client and I'm having massive issues with accents being displayed as "?".After googling it for days, I thought I understood, but issues persists.

To simplify it, I'll explain just the email headers (the message contains french accents)

    $headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

I've tried using charset UTF-8 and the iso-8859-1, but I still get this type of emails:

Merci pour votre intérêt pour les tee shirts. 

Can any one help? I'm having these issues with mySql, HTML, PHP everywhere basically.

Thanks.

回答1:

If intérêt shows up as intérêt you likely (i.e. short of corruption due to double encoding) have UTF-8 encoded text being shown up as if it were ISO-8859-1.

Make sure the headers are correctly formed and present the content as being UTF-8 encoded.



回答2:

First of all, make the charset in the header UTF8 again.

In your page, use utf8_encode() where appropriate to make sure values coming from a database or external files are properly encoded (try to set the encoding of the fields in your database to UTF8 as well)

Also, take a look at the htmlentities() function to parse special characters to html entities which may solve encoding issues as well.



回答3:

All other languages except French work fine for me by default

In my /fr/messages.php file I was able to resolve this with

'myKey' => utf8_encode('en français'),