2013-05-16 5 views
1

Как вставить tulip symbol() в столбец таблицы.Вставить символ тюльпана в таблицу MySQL

Я использую PHP 5.3.x и использую PDO для операций db, я пробовал устанавливать различные кодировки, такие как utf8, utf8mb4, но не использовать. Когда я использую utf8, он сказал «Неверное строковое значение ...» и при использовании символа тюльпана utf8mb4 был заменен на «?».

Я попробовал все эти варианты PHP PDO: charset, set names?

$sql = new PDO(MySQL::DRIVER . ":host=host;dbname=db;charset=utf8", 
          MYSQL_USER, 
          MYSQL_PASSWORD, 
          array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); // or utf8mb44 
$sql->exec("set names utf8"); // or utf8mb44 
$sql->exec("SET CHARACTER SET utf8"); // or utf8mb44 
+1

'utf8mb4' выглядит так, как вы хотите. Откуда берется символ, как вы его кодируете? –

+0

Я получаю с этого сайта https://foursquare.com/kbells130. там вы можете найти имя «Kaylya ». Я очищаю его и отправляю в db без кодирования. так как я не хочу кодировать его. – Garfield

+0

FYI, этот символ можно увидеть в IE10. chrome & firefox показывает это как квадрат. – Garfield

ответ

0

РНР файл, который вы пошлете характер в потребности быть закодирован как UTF-8, и, конечно, таблица базы данных должна быть utf8mb4 как точки Adder вне.

Кроме того, для подключения к базе данных должно быть установлено значение utf8mb4 - почему бы не сделать это сразу при подключении к базе данных?

$sql = new PDO(MySQL::DRIVER . ":host=host;dbname=db;charset=utf8mb4", ... 

По существу, совет, данный в UTF-8 all the way through прикладывает - просто замените utf8 на utf8mb4 на стороне MySql в.

+0

Я включил: charset = utf8mb4 «символ все еще заменен на«? ». Оболочка таблицы и col's - utf8mb4 – Garfield

+0

@codelover вы проверили свой файл? Что произойдет, если вы выведете символ из своего файла в браузер - вы см. правый символ? –

+0

Он печатает «\ ud83c \ uddfa \ ud83c \ uddf8». – Garfield

Смежные вопросы