Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP&MySQL: проблема с кодировкой
 
 автор: Kenan Bek   (03.02.2009 в 00:25)   письмо автору
 
 

Привет!
у меня проблема с русскими кодировками. После передачи текста в объекте OPTION (<OPTION VALUE="Ресторан">RUS-Restoran) они записываются в БД и потом другой скрипт их отображает. в таком случае почему то проблем не возникает. а когда передается объектом TEXT (<input type='text' name='ealttip' text=''>) они тоже записываются в БД, но при выводе на экран русские буквы не отображаются.
плиз помогите найти проблему...

  Ответить  
 
 автор: Trianon   (03.02.2009 в 00:28)   письмо автору
 
   для: Kenan Bek   (03.02.2009 в 00:25)
 

так поглядите, как сделано в этом другом скрипте, который работает. Сделайте так же.

  Ответить  
 
 автор: Kenan Bek   (03.02.2009 в 00:31)   письмо автору
 
   для: Trianon   (03.02.2009 в 00:28)
 

все также, но опять не работает

  Ответить  
 
 автор: Trianon   (03.02.2009 в 00:33)   письмо автору
 
   для: Kenan Bek   (03.02.2009 в 00:31)
 

ну тогда в поиск по форуму.
Поскольку никакой конкретики Вы не приводите.

PS. ШАнсы повысятся, если Вы будете искать в разделе MySQL , т.к. проблема у Вас именно с неумением обращаться с кодировками при работе с MySQL.

  Ответить  
 
 автор: Kenan Bek   (03.02.2009 в 00:36)   письмо автору
 
   для: Trianon   (03.02.2009 в 00:33)
 

код огромен...каккие части мне выложить?

  Ответить  
 
 автор: Trianon   (03.02.2009 в 00:40)   письмо автору
 
   для: Kenan Bek   (03.02.2009 в 00:36)
 

Никакие не надо.
Надо написать отдельную маааленькую страничку, в которой установить соединение с БД, выбрать базу, добавить данные из формы в таблицу, и вывести содержимое таблицы на экран.
Всё это можно уложить строк в пятнадцать-двадцать.

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

  Ответить  
 
 автор: Kenan Bek   (03.02.2009 в 00:40)   письмо автору
 
   для: Kenan Bek   (03.02.2009 в 00:36)
 

а вы не подскажите какую кодировку мне выбрать для отображения и русских и латинских букв?

  Ответить  
 
 автор: Trianon   (03.02.2009 в 00:43)   письмо автору
 
   для: Kenan Bek   (03.02.2009 в 00:40)
 

а в какой кодировке у Вас сайт сейчас?

  Ответить  
 
 автор: Kenan Bek   (03.02.2009 в 00:44)   письмо автору
 
   для: Trianon   (03.02.2009 в 00:43)
 

utf8. а в phpMyAdmin сравнение=cp1251_general_ci

  Ответить  
 
 автор: Trianon   (03.02.2009 в 00:46)   письмо автору
 
   для: Kenan Bek   (03.02.2009 в 00:44)
 

вот в utf8 и делайте.
phpMyAdmin тоже может работать в utf8 , если попросить.
И саму базу данных тоже можно в utf8 создать.

  Ответить  
 
 автор: Kenan Bek   (03.02.2009 в 00:48)   письмо автору
 
   для: Trianon   (03.02.2009 в 00:46)
 

у меня латынские буквы отображаються, а что сделать чтобы и русские отображались?

  Ответить  
 
 автор: Trianon   (03.02.2009 в 00:51)   письмо автору
 
   для: Kenan Bek   (03.02.2009 в 00:48)
 

добиться того, чтобы база данных, таблицы в ней, данные в таблицах имели ту же кодировку, что и выставляемая в процессе соединения с сервером, а последняя - в свою очередь - та же, в которой кодируется html-контент.

Обычно для этого достаточно
а) создать БД, указав нужную кодировку.
б) создать таблицы (пустые)
в) в скрипте установления соединения с БД добавить правильный оператор SET CHARSET или SET NAMES
г) в .htaccess добавить правильную директиву AddDefaultCharset
д) данные заносить в таблицу через скрипт, правильно выполняющий (в), либо корректный клиент.

  Ответить  
 
 автор: Kenan Bek   (03.02.2009 в 00:54)   письмо автору
 
   для: Trianon   (03.02.2009 в 00:51)
 

а utf8 может отображать русские буквы?

  Ответить  
 
 автор: Trianon   (03.02.2009 в 00:54)   письмо автору
 
   для: Kenan Bek   (03.02.2009 в 00:54)
 

может.

  Ответить  
 
 автор: Kenan Bek   (03.02.2009 в 00:57)   письмо автору
 
   для: Trianon   (03.02.2009 в 00:54)
 

спасибо за полезные советы, сейчась побробую все сделать

  Ответить  
 
 автор: Kenan Bek   (03.02.2009 в 01:00)   письмо автору
 
   для: Kenan Bek   (03.02.2009 в 00:57)
 

извини у меня еще один вопрос. когда я записываю латиинск. в БД особые латынские буквы кодируется (нап так &#601). как сделать что-бы и русские так кодировались?

  Ответить  
 
 автор: Trianon   (03.02.2009 в 01:05)   письмо автору
 
   для: Kenan Bek   (03.02.2009 в 01:00)
 

это происходит до записи.
И обычно является ошибкой - следствием невыставленной кодировки html-страницы. п.(г).

  Ответить  
 
 автор: Kenan Bek   (03.02.2009 в 01:08)   письмо автору
 
   для: Trianon   (03.02.2009 в 01:05)
 

русские буквы так делать не возможно?

  Ответить  
 
 автор: Trianon   (03.02.2009 в 01:20)   письмо автору
 
   для: Kenan Bek   (03.02.2009 в 01:08)
 

может и возможно.

при некотором рвении, можно забить молотком шуруп.
а можно и гвоздь отверткой завернуть.
Но даже если это возможно, советов таких я давать не буду.

  Ответить  
 
 автор: Kenan Bek   (03.02.2009 в 01:29)   письмо автору
 
   для: Trianon   (03.02.2009 в 01:20)
 

ок

  Ответить  
 
 автор: Sirius1981   (04.02.2009 в 13:26)   письмо автору
 
   для: Kenan Bek   (03.02.2009 в 01:29)
 

Так вопрос у вас хорошии и очен геморойны - когда то занимался этим вопросом.



Вопрос возможно ли русский в UTF8 передставит да можно. Вобще кодировка UTF8 небыла изначално задумана для русских символов / букв, а толко для ASCII (понятно почему разрабатывали же америкосы и как всегда о русских не подумали:)) Русский входит Unicode . Возникает сразу же новая проблема - PHP5 не подерживает Unocode толко как говорят PHP6 будет Unocode подерживать . Но пока PHP6 не высшел надо использовать какоинибуть костыл этот костыль существует почитаите здесь http://ru.wikipedia.org/wiki/UTF-8
Будет 4то то непонятно спрашиваете чем смогу тем помогту.

Извените за грамотические ошибки - я давно уже не живу в Росии.

PS: Удачи

  Ответить  
 
 автор: cheops   (04.02.2009 в 13:51)   письмо автору
 
   для: Sirius1981   (04.02.2009 в 13:26)
 

UTF-8 прекрасно поддерживает русский язык, а из любой другой кодировки в UTF-8 данные можно преобразовать при помощи iconv(). Кроме того, с состав PHP входит расширение mb_string, которое позволяет работать с многобайтовыми строками (да и некоторые стандартные функции поддерживают многобайтовые кодировки), в том числе и UTF-8. Оба расширения доступны на подавляющем большинстве хостингов.

  Ответить  
 
 автор: Sirius1981   (04.02.2009 в 15:06)   письмо автору
 
   для: cheops   (04.02.2009 в 13:51)
 

Тогда как решить проблему которая здесь затронута? Можно поподробей мне это было бы очень интерестно.

  Ответить  
 
 автор: Sirius1981   (04.02.2009 в 15:09)   письмо автору
 
   для: Sirius1981   (04.02.2009 в 13:26)
 

Вот ещё неплохой форум по теме http://habrahabr.ru/blogs/php/45886/

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования