Невозможно обработать переменную mysql_set_charset - PullRequest
0 голосов
/ 25 ноября 2011

Я изо всех сил пытаюсь получить правильный вывод кодировки на сайте, который я разрабатываю. Но когда я использую функцию mysql_set_charset, я получаю правильную кодировку на сайте.

Но странная вещь - после использования этой функции - это то, что я не могу правильно обрабатывать переменные. Под правильным я имею в виду этот пример, следующий код не работает (что происходит, когда я не использую функцию mysql_set_charset):

$replace = array("å", "ä", "ö");
$with = array("a", "a", "o");

$test = str_replace($repalce, $with, $test);
$test = strtolower($test);

connect.php

$connection = mysql_connect("localhost", "****", "****") or die(mysql_error());
    mysql_set_charset('utf8',$connection);
    mysql_select_db("****", $connection) or die(mysql_error());

Как это случилось и как мне это исправить?

1 Ответ

0 голосов
/ 01 июля 2012

Функция mysql_set_charset, которую можно прочитать в официальной документации :

Устанавливает набор символов по умолчанию для текущего соединения.

Нет абсолютно никакой связи между использованием mysql_set_charset и использованием переменных в вашем PHP-скрипте, поскольку mysql_set_charset влияет на их значения.


Какпредложенный @Nacereddine в комментариях к вопросу, наиболее вероятная проблема, с которой вы столкнулись - это опечатка в вашем коде:

$test = str_replace($repalce, $with, $test);

Должно быть:

$test = str_replace($replace, $with, $test);

Наилучший вариант при разработке заключается в том, чтобы PHP отображал ошибки, предупреждения и т. Д., Чтобы вы могли сразу увидеть, что не так, и тем самым предотвратить неправильные выводы:

error_reporting(E_ALL);
ini_set("display_errors", 1);

Это будетпоказать все ошибки, добавленные в самом верху вашего файла.

Вы можете прочитать об этом в PHP: Настройка времени выполнения - Руководство

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