Вашият HTML изход трябва да бъде в едно кодиране, няма начин да се заобиколи това. Това означава, че съдържанието в различни кодировки трябва първо да бъде преобразувано във вашето HTML кодиране. Докато това е възможно да се направи с iconv
или mb_convert_encoding
, има два проблема, които трябва да разрешите:
- Трябва да знаете (или да познаете) текущото кодиране на съдържанието
- Трябва да направите това ръчно, навсякъде
Например теоретично решение би било да изберете UTF-8 като ваше HTML кодиране и след това да направите това за всички низове, които ще извеждате:
$string = '...'; // from the database
// If it's not already UTF-8, convert to it
if (mb_detect_encoding($string, 'utf-8', true) === false) {
$string = mb_convert_encoding($string, 'utf-8', 'iso-8859-1');
}
echo $string;
Кодът по-горе предполага, че съдържанието, което не е UTF-8, е кодирано в latin-1, което е разумно според вашия въпрос.