Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Опять проблема кирилицы

2.0K
23 сентября 2008 года
swordholder
99 / / 17.10.2006
Подскажите ка пожалуйста как заставить MySQL правильно принимать кирилицу в запросах INSERT ?

В запросах SELECT правильно выводит а вот INSERT не может правильно вводит данные и в результате все показывается как ????? ???? ??????? вот так вот.
Перед INSERT'ом делал вот такие запросы

mysql_query("SET CHARSET utf8");
setlocale(LC_ALL,'ru_RU.UTF8');
mysql_query("SET NAMES=UTF8");


mysql_query ("SET COLLATION_CONNECTION=UTF8");
mysql_query("SET CHARACTER_SET_CLIENT=UTF8");
mysql_query("SET CHARACTER_SET_RESULTS=UTF8");

Все таблицы у меня в формате utf-8.
Версия MySQL 5.0.45-community
Версия php 5.2

Между тем все это происходит на бесплатном хостере куда я закинул свой тестовый сайт. Забавно то что через PHPMyAdmin свои запросы делаю все принимает и показывает как надо. Проблема существует только когда из php кода отправляю INSERT запросы.У меня на локальном все работает нормально и INSERT и SELECT все правильно отображает кирилицу. Может кто знает более мягкий бесплатный хостер с поддержкой кирилицы для тестовых целей?:(
6
23 сентября 2008 года
George
4.1K / / 05.01.2007
ссыль убери а то за спам ругнут.
244
23 сентября 2008 года
UAS
2.0K / / 19.07.2006
А данные отправляешь для занесения в utf8 формате?
369
23 сентября 2008 года
Kesano
451 / / 09.10.2007
А зачем таблицы в УТФ-8 если ты добавляешь туда кириллические данные??? CP-1251 не вариант???...

З.Ы. Скорее всего при отпавке через PHP-скрипт нужно ему тоже ставить кодировкув UTF-8, т.к. по дефолу идёт в той кодировке, что стоит у твоего бразера.. А МайАдмин в коде уже несёт конвертацю в УТФ...

мож глупость написал, но вроде так..
92
23 сентября 2008 года
Тень Пса
2.2K / / 19.10.2006
да верно ты написал.... это автор неверно написал, он любит глупые вопросы позадавать, повторять что уже спрашивали и тд... отдельный респект ему за это :)

UAS, +1
2.0K
26 сентября 2008 года
swordholder
99 / / 17.10.2006
Цитата: Тень Пса
это автор неверно написал


Что именно я неверно написал ?

Цитата: Тень Пса

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



В заданном мной вопросе ничего глупого и сверхестественного не вижу.

Мне просто надо чтобы MySQL возвращал данные в понятном для броузера формате.

Таблицы в базе, страницы все в формате utf-8. Может что то надо по другому делать?!:(

2.0K
26 сентября 2008 года
swordholder
99 / / 17.10.2006
Цитата: UAS
А данные отправляешь для занесения в utf8 формате?



Да .

244
26 сентября 2008 года
UAS
2.0K / / 19.07.2006
Так. Вот ты сделай запрос, и проверь в phpMyAdmin - если там "?????". Значит при занесении ошибки с кодировками.
Ну а если при выводе в браузер, значит ищи несоответсвия вывода кодировки БД и страницы..
2.0K
26 сентября 2008 года
swordholder
99 / / 17.10.2006
Да я через phpmyadmin отправляю insert запросы без проблем принимает. А вот из php скрипта не получается.:confused:
353
26 сентября 2008 года
Nixus
840 / / 04.01.2007
SET NAMES utf8?
2.0K
29 сентября 2008 года
swordholder
99 / / 17.10.2006
В этом случае в SELECT запросах правильно выводит но INSERT'ировать не может правильно. Мозайки сохраняются в базе.

Короче если писать SET CHARSET utf8 select'ом правильно выводит но INSERT делает не правильно (мозайки добавляет)

Если ничего не писать INSERT делает правильно но SELECT выводит мозайки.

Тут палка с двух концов получается. Очень странно...:confused:

Тут ошибка явно во мне потому что С PHPMyAdmin и занесение и чтение с базы производится правильно.
Что можно сделать в подобных случаях ??? (Повеситься, застрелиться,...)
13
29 сентября 2008 года
RussianSpy
3.0K / / 04.07.2006
Не тема, а бред просто

Объясняю тем, кто не умеет пользоваться юникодом по пунктам. Чтобы юникод работал нужно:

1) Таблицы создавать в соответствующей кодировке, а именно - при создании задавать параметры кодировки вот так:
 
Код:
CREATE table1(
myid int(11) NOT NULL auto_increment,
myfield text collate utf8_unicode_ci NOT NULL
)  ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


2) Всегда после коннекта к серверу СУБД и выбора нужной БД выполнять запрос:
 
Код:
mysql_query('SET NAMES utf8');


3) Страница, с которой пользователь работает с данными из БД (смотрит их, редактирует, создает и т.д.) ДОЛЖНА быть в кодировке UTF-8. Для этого нужно выставить соответствующий мета тег и перевести все тексты в юникод (делается в любом редакторе, умеющем работать с юникодом простым переключением из режима ANSI в режим Unicode/UTF-8)


Ежели ваш сайт (скрипт, cms, фреймворк или иная убогая поделка) показывают крякозябры или знаки вопроса - значит в 96% случаев вами не выполнено одно (или более) действий, указанных выше. Оставшиеся 4% - это различные гораздо более редкие проблемы вроде принудительной перекодировки сервером Апач или отсутствии поддержки юникода в сборке той версии субд, что вы используете. Однако не нужно себе льстить и надеяться на эти пресловутые 4%. Для подавляющей части вопрошающих на этом форуме актуальны те самые 96%.

ЗЫ Вероятно что-то забыл. Увидите ошибку - обязательно на нее укажите :):)
2.0K
29 сентября 2008 года
swordholder
99 / / 17.10.2006
Цитата: RussianSpy

1) Таблицы создавать в соответствующей кодировке, а именно - при создании задавать параметры кодировки вот так:
 
Код:
CREATE table1(
myid int(11) NOT NULL auto_increment,
myfield text collate utf8_unicode_ci NOT NULL
)  ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


2) Всегда после коннекта к серверу СУБД и выбора нужной БД выполнять запрос:
 
Код:
mysql_query('SET NAMES utf8');


3) Страница, с которой пользователь работает с данными из БД (смотрит их, редактирует, создает и т.д.) ДОЛЖНА быть в кодировке UTF-8. Для этого нужно выставить соответствующий мета тег и перевести все тексты в юникод (делается в любом редакторе, умеющем работать с юникодом простым переключением из режима ANSI в режим Unicode/UTF-8)



Спасибо конечено. Но все эти 3 пункта я давно уже знаю и выполняю на каждом своем сайте которых я делаю.
Раньше форматом utf8 не пользовался (только cp1251) по этому опыта нету работы с форматом utf8.
:(

13
29 сентября 2008 года
RussianSpy
3.0K / / 04.07.2006
В таком случае ссылку на проблемный скрипт
244
29 сентября 2008 года
UAS
2.0K / / 19.07.2006
[SIZE="1"]Оффтоп:
Цитата: RussianSpy
Ежели ваш сайт (скрипт, cms, фреймворк или иная убогая поделка)

аххаххаааах:D:D:D[/SIZE]

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог