gotta have my pops gotta have my pops - 4 years ago 74
PHP Question

PHP Encoding of Special Characters iso-8859-1

My PHP script parses a web site and pulls out an HTML DIV that looks like this (and saves it as a string)

<div id="merchantinfo">The following merchants: Nautica®, Brookstone®, Teds® ©2012 Blabla</div>


I store this as $merchantList (string).

However, when I output the data to the webpage

echo $merchantList


The encoding gets messed up and displays as:

Nautica®, Brookstone®, Teds® ©2012 Blabla


I tried adding the following to the display page:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>


But that didn't do anything. --Thanks

EDIT:: ------------

For the question, the accepted answer is correct.

But I realized my actual issue was slightly different.

The initial parsing using DOMDocument::loadHTML had already mangled the UTF-8 encoding, causing the string to save as

<div id="merchantinfo">The following merchants: Nauticaî, Brookstoneî, Tedsî ©2012 Blabla</div>


This was solved by:

$html = mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8");
$dom->loadHTML($html);

Answer Source

Use:

ini_set('default_charset', 'UTF-8');

And do not use iso-8859-1. Use UTF-8.

From the mojibake you posted the input string is utf-8, not iso-8859-1.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download