[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Mysql обрезает строку
T1grOK
Если попытаться вставить в БД строку вида

💥 Акция от поставщика!

Ключевым является квадратик, на форуме просто не поддерживаются некоторые шрифты.
То в итоге просто пустота.
Как? Почему?

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
inpost
T1grOK
Кодировка UTF-8 ? Смотрел в спец.символах HTML, может есть подобный? Смотрел в кодах тегов UTF-8 ? Там такой символ 100% должен быть.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
T1grOK
Да кодировка UTF-8, в кодах символов есть данный код (http://unicode-table.com/ru/1F4A5/), но mysql пофигу, он обрезает все что после таких кодов.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
T1grOK
Пока вопрос решил через utf8_encode, utf8_decode. Хотя это как то глупо.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
inpost
T1grOK
HTML-код: & #128165;
Так пробовал вставить?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Alchemist
http://ashleyangell.com/2014/04/mysqls-utf...upport-unicode/

"...Turns out MySQL’s UTF8 character set only partially implements proper UTF-8 encoding. It can only store UTF-8-encoded symbols that consist of one to three bytes; encoded symbols that take up four bytes aren’t supported. Luckily, MySQL 5.5.3 introduced a new encoding called utf8mb4 which maps to proper UTF-8 and thus fully supports Unicode, including astral symbols."
T1grOK
Цитата (inpost @ 16.11.2014 - 13:09)
HTML-код: & #128165;
Так пробовал вставить?

Так конечно норм вставляет. Но как получить из строк, набор уникод кодов?

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
inpost
T1grOK
Может быть utf8_general_ci, utf8_unicode_ci попробовать? То есть их поменять?

Alchemist
А расскажи, что за utf8mb4 и с чем едят? Там больше символов, стоит ли переходить? Может сталкивался в практике, не будет ли объемы выше или нагрузка?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
T1grOK
Цитата (inpost @ 16.11.2014 - 18:21)
Может быть utf8_general_ci, utf8_unicode_ci попробовать? То есть их поменять?

Пробовал не катит.

utf8mb4 - не съедает строку, но "зло символ" не сохраняется как нужно.


_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Kapitan79
Цитата (T1grOK @ 16.11.2014 - 15:58)
💥 Акция от поставщика!


Похожий символ у меня возникал в базе, если я пытался вставить текст с несколькими строками.
Т.е. может это символ перевода строки?

Что за символ то изначально был?
Alchemist
inpost, лень много писать - устал за день.

Вот ссылка на статью о utf8mb4 в мануале MySQL 5.5 на английском: http://dev.mysql.com/doc/refman/5.5/en/cha...de-utf8mb4.html

Вот она же но в переводе Гугла на русский (перевод не чистый но в принципе вроде все понятно): https://translate.google.com/translate?sl=a...t-text=&act=url

T1grOK, разница между utf8_general_ci и utf8_unicode_ci лишь в том, что utf8_unicode_ci умеет сравнивать суперсеты символов, а utf8_general_ci - нет. Твоя проблема в том, что CHARSER=utf-8 в MySQL вообще не поддерживает 4х-байтные символы (см. выше в этом же посте, либо мой предыдущий пост).
T1grOK
Цитата (Alchemist @ 16.11.2014 - 23:55)
T1grOK, разница между utf8_general_ci и utf8_unicode_ci лишь в том, что utf8_unicode_ci умеет сравнивать суперсеты символов, а utf8_general_ci - нет. Твоя проблема в том, что CHARSER=utf-8 в MySQL вообще не поддерживает 4х-байтные символы (см. выше в этом же посте, либо мой предыдущий пост).

Да я с первого твоего сообщения понял это. Спасибо.

Пока решил "костыльнуться" кодированием строки.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
inpost
Alchemist
Меня больше интересует практическое применение. Может пользовался и баги какие встречал или подводные камни?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Alchemist
Ааа, нет, не пользовался. Мне трех байт хватает вполне.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.