Акцентированные символы внутри включаемого файла в PHP - PullRequest
0 голосов
/ 14 октября 2011

У меня есть веб-страница, которая выводит строку, содержащую акцентированные символы.

У меня есть переменная $myGlobalStr, которая объявлена ​​на главной странице и затем возвращается через функцию outputGlobalVariable().Все работает, как и ожидалось.

Когда я объявляю ту же самую строку в функции outputFunctionVariable(), вывод выводится в формате UTF-8 ..

Я пытался использовать <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> в моемстраница, объявление Я также пытался включить header('Content-type: text/html; iso-8859-1') в начале моего файла включения.И то, и другое не работает.

Раньше мне никогда не приходилось указывать кодировку во включаемом файле.Я знаю, что могу использовать функцию utf8_decode() в outputFunctionVariable (), но мне интересно понять, почему это происходит и что за этим стоит ...

Я использую Zend Server CE в Windows.

index.php

<?
    $myGlobalStr = "1. Dites bonjour à l'élève.";
    include("includes/functions.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Test</title>
</head>

<body>

<?=outputGlobalVariable()?>
<hr>
<?=outputLocalVariable()?>

</body>
</html>

functions.php

<?
    function outputGlobalVariable() {
        global $myGlobalStr;

        return $myGlobalStr;
    }

    function outputLocalVariable() {
        $myStr = "2. Dites bonjour à l'élève.";

        return $myStr;
    }
?>

выход

1. Dites bonjour à l'élève.
------------
2. Dites bonjour à l'élève. 

Ответы [ 2 ]

2 голосов
/ 14 октября 2011

Один из файлов содержит строки в ISO-8859-1, а другой - в виде строки UTF-8.
Теперь, когда ваша страница объявлена ​​с кодировкой Latin-1, последняя будет содержать символы мусора.

Не смешивайте два.Либо определите сценарий UTF-8 и преобразуйте его обратно в Latin-1.Или перейдите в UTF-8 для всего.

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

Если файлы .php (как index.php, так и functions.php) сохраняются в спецификации utf-8, вы также можете попробовать:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

В любом случае, неплохо было бы согласовать кодировку, которую вы используете для всех ваших файлов .php, а также метатег и заголовок ответа HTTP Content-Type.

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