Как я могу сохранить символ '€' в MySQL, используя PHP?

Я установил набор символов PHP на utf-8:

header('Content-Type: text/html; charset=utf-8');

Я установил currency колонка в MySQL для varchar(1) с сопоставлением utf8_unicode_ci,

Тем не менее, следующий код в PHP:

$currency = '€';
$sql = "UPDATE myTable SET currency = '$currency' WHERE user = '$user'";
mysql_query($sql);

Создает следующий символ в MySQL:

â

Как я могу получить символ правильно хранить в MySQL?

3 ответа

Решение

Убедитесь, что ваш файл сценария, файл, который содержит строку

$currency = '€';

кодируется UTF-8. У вас должна быть опция на этот счет в диалоговом окне "Сохранить как" вашего редактора или IDE.

Затем убедитесь, что ваше соединение также закодировано в UTF-8 - по умолчанию это ISO-8859-1.

После подключения к базе данных для MySQL до 5.0.7:

mysql_query("SET NAMES utf8");

Для MySQL 5.0.7 и новее:

mysql_set_charset("utf8");

Раздел "Работа с UTF-8 в Интернете" на этой странице содержит краткое изложение: http://dev.mysql.com/tech-resources/articles/4.1/unicode.html

Вы можете преобразовать его в HTML-код €

Другие вопросы по тегам