У меня есть следующий код PHP:
<?php ini_set( 'default_charset', 'UTF-8' ); mb_internal_encoding('UTF-8'); function labelValidate($label) { echo mb_detect_encoding($label.'x', 'UTF-8, ISO-8859-1'); echo '<br />'; echo mb_detect_encoding('Rio, coração do Brasil', 'UTF-8, ISO-8859-1'); } labelValidate('Rio, coração do Brasil'); ?>
Я получаю этот вывод:
ISO-8859-1 UTF-8
Кто-нибудь знает, почему параметр $ label имеет ISO-кодировку, но прямое эхо, которое я создал внутри функции, кодирует UTF-8?
Это порождает головную боль для меня, потому что я должен поместить utf8_encode в $ label var, иначе я получаю проблематичные символы в выходе.
Спасибо за любую помощь!
Речь идет о вашем текстовом редакторе.
Попробуйте удалить строки «Rio, coração do Brasil» из кода и написать его еще раз.
С помощью @Marc B и @Michael Madsen я загрузил Notepad ++ (PHP IDE) и преобразовал кодировку UTF-8 без спецификации, поэтому все мои проблемы были решены. Dreamweaver сохранял некоторые файлы как ANSI, это было поколение путаницы на PHP.
Большое спасибо за всех!