Проблема с хранением юникода в MySQL
Доброе время суток.
Для тех кому лень читать нижеописанное, сразу задам вопрос: Где в phpMyAdmin что надо поменять, что бы в базу заносилось səhifə, а не s&#.601;hif&#.601;? Для тех, у кого есть время: Была создана база с таблицами с кодировкой по умолчанию (cp1251_general_ci). В базу занесен (например) текст səhifə. Он попал в базу как s&#.601;hif&#.601; php-файл читает с базы, флеш у него берет переменную, хранящая вышеуказанный текст. Флеш конечно после буквы s в тексте все оборвет, это многие тут знают. php-файл сохранен в кодировке UTF8 и если вручную там вписать этот текст, то флеш с радостью все читает! это тоже знаем :) В базе (через phpMyAdmin) все поля Сравнение сделал utf8_unicode_ci и вообще, кликнув на Операции (для всей БД) сравнение сделал так же utf8_unicode_ci. (далее, когда увидел что не помогает, делал у всего utf8_general_ci) Создал новую таблицу, она уже в utf8_unicode_ci, и вписал туда səhifə, в базу опять занесено s&#.601;hif&#.601; :( Где в phpMyAdmin что надо поменять, что бы в базу заносилось səhifə ? p.s.: искал по форуму, советовали iconv. определял кодировку (почему-то ISO-8859-1). менял (iconv_set_encoding) на UTF8, после чего iconv_get_encoding показывал UTF8! и даже делал iconv("ISO-8859-1", "UTF-8", "s&#.601;hif&#.601;"); — все без толку ((((( |
Что-то мне подсказывает, что html-сущности создает либо скрипт, либо браузер. База тут непричем.
|
__etc, то есть скрипт phpMyAdmin'а, который заносит в базу? Не совсем понял что вы имели ввиду.
|
Цитата:
|
получается я в безвыходном положении? ужасно, неужели придется использовать php-файлы вместо базы? это же будет смешно, но мне от этого только грустно(((
правда у меня щас возникла идея по написании функции (пхп), которая будет заменять s&#.601; на ə. думаю должно помочь... хоть и скрипт будет медленно работать, так как там не только эта буква, там куча разных + ещё и регистр |
решил проблему пхп-шным ковертом. но тема хранения символов в БД осталась не раскрытой.
|
для базы нужна кодировка подключения. То есть в какой кодировке ждать данных от юзера и в какой кодировке возвращать данные ему.
К сожалению дефолтные такие настройки доступны только в config и распространяются на весь сервер mySQL. По этому можно выставить кодировку базы/таблицы в utf8_unicode_ci, как вы делали и! указать что обмен данными будет так же в утф sql: Код:
SET character_set_results = 'utf8', character_set_client = 'utf8' |
Часовой пояс GMT +4, время: 16:20. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.