как начтроить кодеровку ?

Тема в разделе "PHP программирование", создана пользователем typak, 9 янв 2011.

Статус темы:
Закрыта.
  1. typak

    typak Гость

    Здарова !!!Кто знаек как настроить кодировку? Вообщем када извлекаеш из БД таблицу то в место руских символо получается чтото типа такого:
    Џа®жҐбб®ал
    как его убрать кто занет ?
    в программе прописано:
    Код (Text):
    ...
    //Устанавливаем кодировку базы данных

    mysql_query ("SET NAMES 'CP1251'");
    ...
    Када изменяеш на utf8
    Код (Text):
    ...
    //Устанавливаем кодировку базы данных

    mysql_query ("SET NAMES 'utf8'");
    ...
    выводит такое:
    Џа®жҐбб®ал[/b]
    када коментируеш :
    Код (Text):
    ...
    //Устанавливаем кодировку базы данных

    //mysql_query ("SET NAMES 'utf8'");
    ...
    выводит вопросики:
    ??®????®??

    В my.ini Вроде ср1251 прописано кругом, нипонятно чо он фигню выводит мож кто знает ау!!!! ответъте. :KillMe:

    p.s: Нервов уже нехватает
     
  2. 1ive

    1ive Well-Known Member
    Web Team

    Регистрация:
    12 сен 2010
    Сообщения:
    694
    Симпатии:
    0
    Код (Text):
    mysql_query ("SET NAMES ' ___ '");
    Не забывай, что и в таблицу надо записывать в той же кодировке.
    Кодировку нужно выбирать в соответствии с кодировкой страницы, в которую выводишь.

    У тебя так все примерно:
    Страница - utf-8
    Записи в базе - windows cp1251
    А выводишь ты их по разному (в какой бы ты не выводил - будут каракули.)

    Перепиши всю инфу в таблице в utf-8
    И выводи
    Код (Text):
    mysql_query ("SET NAMES 'utf-8'");
     
  3. typak

    typak Гость

    [
    Создал БД в utf-8 кодировке тока руский туда неидёт

    А как её переписать в utf-8 ? Тока изменил кодировку по умолчанию на utf-8, так оно чота выдает ошибку када руские строки вводиш латинский добавляет а русский нет
    Код (Text):
    ERROR 1366 (HY000): Incorrect string value: '\x8F\xE0\xAE\xE6\xA5\xE1...' for co
    lumn 'name' at row 1
    Мож кто чо знает в му.ini прописано:
    default-character-set=cp1251; и character-set-server=cp1251 больше там кодировок нету. Версия мускл 5.5.8
    мож кто чо еще придложет попробовать?
    :KillMe:
     
  4. 1ive

    1ive Well-Known Member
    Web Team

    Регистрация:
    12 сен 2010
    Сообщения:
    694
    Симпатии:
    0
    Везде нужно использовать одну кодировку.
    Если нет знаний и желания для изменения кодировки базы, оставь все в cp1251 и кодировку страницы исправь, в которую информация выводится на "windows cp1251".


    "Нервов уже нехватает" Мозгов, видимо, тоже. Георг возвращается.
     
  5. typak

    typak Гость

    А КАК КОДИРОВКУ СТРАНИЦЫ ИСПРАВИТЬ? В АПАЧЕ?
    ТАК САМОЕ ИНТЕРЕСНОЕ АНЛИЙСКИЕ БУКВЫ НОРМАЛЬНО ВЫВОДИТ А РУССКИЕ НЕТ

    Я В БРАУЗЕРЕ МЕНЯЛ ХОТЕЛ УЗНАТЬ В КАКОЙ КОДЕРОВКЕ ВЫВОДИТСЯ ТО ХОТЬ, ТОКА В КАКУЮ НИСТАВИШ ВСЁРАВНО КАЗЮБРИКИ ВЫВОДЯТСЯ (ЕСЛИБ БЫЛИБ РАЗНЫЕ КОДЕРОВКИ ТО НАВЕРНОБ ХОТЬ ПРИ КАКОЙ НИБУДЬ ПРАВИЛЬНО ОТОБРАЗИЛОСЬ БЫ?)

    ТОКАШО УГАДАЛ КАЗЮБРИКИ ЭТИ ВЫВОДЯТСЯ В КОДИРОВКЕ КРИЛИЦА DOS, ТОКА КАК ЕЁ НА РУСКУЮ ПОМЕНЯТЬ У МЕНЯЖ ВРОДЕ В НАСТРОЙКАХ БД СТОИТ ПО УМОЛЧАНИЮ СP1251?

    ТАК ШО МНЕ ВЫВОД МТРОНИЦЫ В ДОСЕ ДЕЛАТЬ КАК ЕЕ ИЗМЕНИТЬ КТО ЗНАЕТ?

    ЧО НАДО ПРОПИСАТЬ И ГДЕ ШОБ ИЗ DOS КОДИРОВКИ ВЫВОДИЛО В CP1251?
     
  6. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    Сама база у тебя в одной кодировке, текст, который туда отправляешь в другой, и выводишь ты в третьей. А надо все в одной. Или используй iconv(), как дурак.

    И еще, не забывайте про кнопку PHP в редакторе.
     
  7. typak

    typak Гость

    А как их все в одну кодировку настроить?
    Можна поконкретней где шо изменять Я в мускул всё перепробовал может в апаче шото поменятть?
     
  8. 1ive

    1ive Well-Known Member
    Web Team

    Регистрация:
    12 сен 2010
    Сообщения:
    694
    Симпатии:
    0
    http://www.sdelaysite.com/kniga/verstka-kniga/html-kodirovka и http://404.by/izmenenie-kodirovki-bazyi-dannyix - изменене кодировки страницы
    http://4matic.wordpress.com/2006/11/11/izm...ablits-v-mysql/ - изменение кодировки базы данных
    Чтобы изменить кодировку того, что ты уже внес в бд - удали базу, создай новую в правильной кодировке и заноси всю информацию заново.
     
  9. typak

    typak Гость

    А может у меня сервер крыво стоит ? По умолчанию таблица создана в кодеровке utf8 проверил вот код:

    Код (Text):
    mysql> show create table `catalogs1`;
    +-----------+--------------------------------------------
    ---------------------------------------------------------
    ----------------------------------------+
    | Table  | Create Table

    |
    +-----------+--------------------------------------------
    ---------------------------------------------------------
    ----------------------------------------+
    | catalogs1 | CREATE TABLE `catalogs1` (
    `id_catalog` int(11) NOT NULL AUTO_INCREMENT,
    `name` tinytext NOT NULL,
    PRIMARY KEY (`id_catalog`)
    ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 |
    +-----------+--------------------------------------------
    ---------------------------------------------------------
    ----------------------------------------+
    1 row in set (0.00 sec)
    Выполняем запрос в пхп добавляем строку:
    @mysql_query ("SET NAMES utf8"); всеравно выводит нипонятно шо :
    DSDSD
    2 DSDSD‚›‚
    3 Џа®жҐб®ал

    та даже если в браузере поменять кодеровку на ту шо у меня в бд стоит оно бы нормально наверно показалоб вывелоб правельно, может у меня сервер крыво стоит кто знае я просто 3 день бд учу тока установил?
    ЕЩЕ ЕСТЬ ТАКАЯ *отмодерировано* ТОКА ТУТ Я НИРАЗОБРАЛСЯ ЕЩЕ ТУТ УСТАНОВКИ ЭТОЙ ГЛЮЧНОЙ БАЗЫ:
    Код (Text):
    mysql> show variables like '%char%';show variables like '%char%';
    +--------------------------+--------------------------+
    | Variable_name         | Value                 |
    +--------------------------+--------------------------+
    | character_set_client   | cp1251                 |
    | character_set_connection | cp1251               |
    | character_set_database  | utf8                     |
    | character_set_filesystem | binary               |
    | character_set_results | cp1251                  |
    | character_set_server   | utf8                  |
    | character_set_system   | utf8                  |
    | character_sets_dir      | C:\MySQL\share\charsets\ |
    +--------------------------+--------------------------+
    8 rows in set (0.00 sec)

    +--------------------------+--------------------------+
    | Variable_name         | Value                 |
    +--------------------------+--------------------------+
    | character_set_client   | cp1251                 |
    | character_set_connection | cp1251               |
    | character_set_database  | utf8                     |
    | character_set_filesystem | binary               |
    | character_set_results | cp1251                  |
    | character_set_server   | utf8                  |
    | character_set_system   | utf8                  |
    | character_sets_dir      | C:\MySQL\share\charsets\ |
    +--------------------------+--------------------------+
    8 rows in set (0.00 sec)
    МОЖ КТО ПОЙМЁТ ЧО НИКТАК ТОКА Б ПОПОДРОБНЕЙ
     
  10. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
     
  11. typak

    typak Гость

    А этот запрос @mysql_query ("SET NAMES utf8"); ЩО ДЕЛАЕТ ВЫВОДИТ СТРАНИЦУ В UTF8 тада я так понимаю?

    Ну тода если у нас таблица в кодеровке utf8 страница выводится тоже в utf8 то как же нам из базы данные вывести в utf8 ???
    или я чота нидопонял?
     
  12. typak

    typak Гость

    Вообщем создал я базу ка написоно в кодировке всё в одно сз1251 но выводит всёравно то шо и выводило.
    Делал так :

    1.Установил значение переменных спомощью
    SET character_set_client=cp1251;
    SET character_set_connection=cp1251;
    SET character_set_database=cp1251;
    SET character_set_results=cp1251;
    character_set_server=cp1251;

    2.Проверил установилось или нет командой: SHOW VARIABLES LIKE 'character%';
    Код (Text):
    mysql> SHOW VARIABLES LIKE 'character%';
    +--------------------------+--------------------------+
    | Variable_name         | Value                 |
    +--------------------------+--------------------------+
    | character_set_client   | cp1251                 |
    | character_set_connection | cp1251               |
    | character_set_database  | cp1251                |
    | character_set_filesystem | binary               |
    | character_set_results | cp1251                  |
    | character_set_server   | cp1251                 |
    | character_set_system   | utf8                  |
    | character_sets_dir      | C:\MySQL\share\charsets\ |
    +--------------------------+--------------------------+
    вроде всё установилось

    3.В таких настройках создаю новую бд и таблицу:
    creat database aaa;
    create table catalogs (
    id_catalog int(11) NOT NULL auto_increment,
    name tinytext NOT NULL,
    PRIMARY KEY (id_catalog)
    );
    NSERT INTO catalogs VALUES (1, 'Процесоры');

    4.Выводим в пхп всёравно выводит козюбрики результат // 1 Џа®жҐб®ал //

    И где шо я нитак настроил кто догадался ?!? Если кому мало инфы пишите ? Вроде все делаю так как на форумах написано а изменений никаких, может версия MySQL глюченая 5.5 скачал Мож 5.1 установить кто шо посоветует а то шото шо ниделаеш ничо нипомогает, никакой реакции как выводил так и выводит ? Специалисты где вы ау? Или никто несообразит? Уже 12 00 часов настраиваю и никак нинастрою ...
    Ну чо вы никто низнает чи шо?
    ТЕМА ВСЁ ЕЩЁ ОТКРЫТА
     
  13. typak

    typak Гость

    Шо вы советнички я уже розчехлился. Нужно было дос кодеровку консоли из 866 поменять на 1251
    Жалко шо никто нисмог объясник лузеры)))) :)

    Если долго мучится то что нибудь получится ;)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей