UTF-8: INSERT разными источниками- разный результат

Userpic

Новичок
UTF-8: INSERT разными источниками- разный результат

Здравствуйте.
Проблема возникла с использованием UTF-8
вернее сказать- я запутался с терминами или не понимаю и прошу Вашей помощи.
работаю с phpMyAdmin 2.6 (MySQL 4.1.8-max)
MySQL charset: UTF-8 Unicode (utf8)
MySQL connection collation: utf8_general_ci
ALTER DATABASE `Base` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

есть 2 таблицы в базе:
в table_A я добавляю с помощью phpMyAdmin (INSERT INTO....)
там же я вижу нормально русский (Кодировка браузера Unicode UTF-8)

в table_B я добавляю данные с помощью скрипта и формы.
в phpMyAdmin я вижу это как авввв (латинские символы с умляутами)

у себя на страничке (Кодировка браузера Unicode UTF-8. Header("Content-type:text/html; charset=UTF-8") )
я вижу данные из этих 2-х таблиц:
table_B нормально на русском
table_A в виде ?????? (вопр. знаков)

почитав FAQ попробовал SET NAMES utf8 в скрипте соединения- результат стал наоборот:

table_B в виде ?????? (вопр. знаков)
table_A нормально на русском

объясните пожалуйста:
1) как нужно грамотно настроить/работать с этой кодировкой в UTF-8
2) что такое MySQL connection collation и для чего он нужен (чтение мануала на эту тему- не прояснило ситуации)

(доступа к my.cnf файлу у меня нет)
попробовал совет 2 из http://phpclub.ru/faq/wakka.php?wakka=Mysql41Rus
Попробуйте в phpMyAdmin-е выполнить запрос вида «SELECT CONVERT(CONVERT(поле USING binary) USING кодировка) FROM таблица»
данные с умулятами отобразились в нормальном виде, запутав меня теперь совсем, даже после прочтения http://dev.mysql.com/doc/refman/4.1/en/charset-conversion.html
 

magic

lancer
Re: UTF-8: INSERT разными источниками- разный результат

Автор оригинала: Userpic в table_B я добавляю данные с помощью скрипта и формы.
в phpMyAdmin я вижу это как авввв (латинские символы с умляутами)
А в HTML форме кодировка какая? Должно быть тоже UTF-8.
 

Userpic

Новичок
magic
да, тоже UTF-8
вот еще заметил, что
запрос
ALTER DATABASE `Base` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
в phpMyAdmin ни к чему не привел. в общем списке тыблиц базы я увидел:
Table | Collation
table_A | latin1_swedish_ci
table_B | utf8_general_ci
ALTER TABLE `table_A` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
сменил только для таблицы, но не для полей :(
A_name varchar(255) latin1_swedish_ci
как правильно сменить? неужели по всем полям ALTER-ом бегать?
 

si

Administrator
кодировку базы надо было до создания таблиц задавать
 

Апельсин

Оранжевое создание
> как правильно сменить? неужели по всем полям ALTER-ом бегать?

делаешь один ALTER для всех полей.
 
Сверху