Параметр функции со странным поведением кодировки в PHP - PullRequest
0 голосов
/ 17 октября 2011

У меня есть следующий код 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

Кто-нибудь знает, почему параметр $Метка имеет кодировку ISO, но прямое эхо, которое я создал внутри функции, имеет кодировку UTF-8?

Это вызывает у меня головную боль, потому что я должен поместить utf8_encode в $ label var, в противном случае я получаюпроблемные символы в выводе.

Спасибо за любую помощь!

Ответы [ 2 ]

1 голос
/ 17 октября 2011

Речь идет о вашем текстовом редакторе.

Попробуйте удалить обе строки 'Rio, coração do Brasil' из кода и написать это еще раз.

0 голосов
/ 18 октября 2011

С помощью @Marc B и @Michael Madsen я скачал Notepad ++ (PHP IDE) и преобразовал файл кодировки UTF-8 без BOM, поэтому все мои проблемы были решены. Dreamweaver сохранял некоторые файлы в формате ANSI, что приводило к путанице в PHP.

Большое спасибо за все!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...