Ограничение внешнего ключа с UTF-8 - PullRequest
1 голос
/ 25 мая 2011

Я недавно преобразовал свою базу данных в UTF-8, что должно было быть в первую очередь.Все выглядит хорошо, за исключением случаев, когда я использую функцию

echo mb_detect_encoding($_POST['province']);

Я получаю ASCII для всего, что не содержит специальных символов, и я получаю UTF-8 для всего, что делает.Однако все эти значения извлекаются из самой базы данных 1005 *, поэтому меня это смущает.Это то, как это должно работать?

Еще одна вещь, которая не работает, это мое ограничение внешнего ключа;Я не могу ввести значения из выпадающего списка, который снова извлекает значения из базы данных, поэтому

Когда я использую

echo mb_detect_encoding($_POST['province']);
echo $_POST['province'];

, я получаю

UTF-8
Galápagos

Что я не могу ввести в базу данных под таблицей отчетов из-за ограничения внешнего ключа в таблице провинции.Тем не менее, значение приходит непосредственно из таблицы провинции.Я схожу с ума здесь.

Однако я получаю

ASCII
Carchi

Для другой провинции в Эквадоре, и это значение попадает прямо в базу данных.Что я тут не так делаю?

1 Ответ

1 голос
/ 25 мая 2011

Это может быть связано с необходимостью правильной настройки кодировки клиента.Попробуйте это после первоначального подключения MySQL:

mysql_query("SET NAMES 'utf8'")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...