DR.XXX
Помогающий
Offline
|
|
« : 22-03-2010 07:26 » |
|
Здравствуйте всем!!! Есть сайт. Данные для этого сайта хранятся в phpmyadmin и выводятся оттуда. Текст на казахском языке, и проблема в том что на страницу вместо нормальных букв выводятся непонятные символы. Читал что нужно использовать кодировку UTF8. Но вот как ее правильно использовать? Как внедрить в phpmyadmin?
Спасибо за внимание!
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #1 : 22-03-2010 07:32 » |
|
DR.XXX, не путай phpmyadmin (web-интерфейс управления базой mysql) с СУБД (mysql) То что ты написал - понятно. А теперь, небольшая просьба, в свете новых знаний, переформулируй вопрос зы. проверь мтетатег <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
baldr
|
|
« Ответ #2 : 22-03-2010 07:34 » |
|
Мда.. phpmyadmin - это просто приложение на PHP, которое предоставляет web-интерфейс для администрации MySQL-базой данных... Правильнее говорить что данные хранятся в MySQL-базе. Проще всего поискать через тот же phpmyadmin настройки для всей базы и для нужной схемы или таблицы. Если есть доступ к файлу с настройками базы (my.ini или my.cnf) - посмотрите значение параметра [mysql]-[default-character-set], а для конкретной таблицы есть параметры "Charset" и "Collation". Еще, пожалуй, стоит узнать у вас версию MySQL сервера и PHP. Sla, правильно ,еще и кодировку вывода страницы проверить надо..
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
DR.XXX
Помогающий
Offline
|
|
« Ответ #3 : 22-03-2010 08:26 » |
|
Да, согласен, неправильно выразился, прошу прощения)) Sla, метатеги проверил, там стоит UTF8. baldr, character set cp1251
character sets latin1 big5 czech euc_kr gb2312 gbk sjis tis620 ujis dec8 dos german1 hp8 koi8_ru latin2 swe7 usa7 cp1251 danish hebrew win1251 estonia hungarian koi8_ukr win1251ukr greek win1250 croat cp1257 latin5
Версия MySQL 3.23.53-max, phpMyAdmin 2.5.6, PHP4. Да мне самое главное чтобы в MySql можно было добавлять текст на каз.языке и наоборот вытаскивать оттуда информацию на страницу, и чтобы были понятные символы)).
И baldr, если в списке character sets нет UTF-8, то как быть? туда его добавлять?
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #4 : 22-03-2010 08:48 » |
|
DR.XXX, ты сохраняешь данные в cp151, а выводить собираешься в utf8 Найди одно отличие
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
DR.XXX
Помогающий
Offline
|
|
« Ответ #5 : 22-03-2010 09:42 » |
|
Sla, если честно я вообщен не уверен поможет ли мне UTF8. В списке character sets utf8 нет. Или он может по другому называться?
|
|
|
Записан
|
|
|
|
baldr
|
|
« Ответ #6 : 22-03-2010 10:06 » |
|
Мда, MySQL 3.23, PHP4.. Кладбище какое-то А поновее не было? Поддержка UTF8 там только-только появилась, как я понял из документации... Вот, нашел в комментариях к странице http://dev.mysql.com/doc/refman/4.1/en/charset-unicode.htmlif you get data via php from your mysql-db (everything utf-8) but still get '?' for some special characters in your browser (<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />), try this:
after mysql_connect() , and mysql_select_db() add this lines: mysql_query("SET NAMES utf8"); worked for me.
Проверь также что строковые поля у тебя имеют тип VARCHAR, а не CHAR. Может помочь.
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
DR.XXX
Помогающий
Offline
|
|
« Ответ #7 : 22-03-2010 11:29 » |
|
baldr, только что установил новую версию)) теперь у меня PHP5, MySQL5. И кодировка там по умолчанию стоит UTF-8. Но к сожалению, шрифт так же не распознается. То ли это из за DreamWeaver(хотя в настройках указал Юникод utf, и в метатэгах стоит utf8), то ли из-за обращения к странице через localhost. Потому что если просто создавать html файл на блокноте и сохранить в UTF8, затем открыть напрямую (не через localhost) то шрифт распознается.
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #8 : 22-03-2010 11:39 » |
|
DR.XXX, работать с такой древностью не стоит. В древности типа 3.23 и 4.x полно проблем с юникодом, сортировкой и т.п. Настоятельно рекомендую перейти на MySQL 5.0 или 5.1 (конечно, не на любой, а на самые последние релизы). Ветки 5.4 и 5.5 не рекомендую - они девелоперские. Если используется ODBC-драйвер, то стоит сменить MySQL Connector на версию 5.х (хотя 3.51 все еще коннектится к MySQL 5.х, но не поддерживает весь фуекционал). PHP тоже стоит обновить до последнего в ветке 5.2.х (не 5.3.х и не 6.х!!!) При работе с UTF-8 надо знать, что размер поля CHAR/VARCHAR задается в байтах, а на каждый UTF-8 символ MySQL резервирует три байта. Т.е. если нужно гарантированно 40 знаков, то задавай VARCHAR(120). Рекомендую выполнять сразу после коннекта во всех клиентах:
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
DR.XXX
Помогающий
Offline
|
|
« Ответ #9 : 22-03-2010 11:58 » |
|
RXL, спасибо за советы! На данный момент получилась вот такая картина: теперь база MySql воспринимает казахский шрифт отлично!(до этого в таблицу каз. символы не добавлялись-выводил ошибку). Но при на сайте проблема осталась. Главное в MySql отображает нормально, а на страницу выводятся вопросики
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #10 : 22-03-2010 11:59 » |
|
DR.XXX, разберись с кодировкой html страницы
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
baldr
|
|
« Ответ #11 : 22-03-2010 12:23 » |
|
DR.XXX, попробуй в php вывести какую-нибудь строку из базы в файл и посмотреть что там будет - в какой кодировке... Еще посмотри настройки апача с кодировками - у тебя же на Apache сайт?
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
DR.XXX
Помогающий
Offline
|
|
« Ответ #12 : 22-03-2010 14:20 » |
|
baldr, нет, у меня Денвер. В настройках после установки новой версии, все само встало на UTF8. Как ты и сказал, попробывал вывести из базы строку, но проблема осталась((( Напомню, при сохранении в блокноте в формате utf8, шрифты отображаются нормально. Как только обращаюсь через http://as/news.php, то снова такие символы.
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #13 : 22-03-2010 14:39 » |
|
DR.XXX, покажи сформированную страницу
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
DR.XXX
Помогающий
Offline
|
|
« Ответ #14 : 22-03-2010 15:01 » |
|
Если я правильно понимаю, то наверное этот код: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; utf-8"> ------------------------------------- -------------------------------------- <td><p> Lorem Ipsum - ?то текст-часто используемый в печати и вэб-дизайне. Lorem Ipsum является стандартной для текстов на латинице с начала XVI века. <br><p class='post_view'>Просмотров: 31</p></td> </tr> вместо вопросительного знака нужен символ - буква "Қ"
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #15 : 22-03-2010 15:19 » |
|
найди отличия <meta http-equiv="Content-Type" content="text/html; utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
DR.XXX
Помогающий
Offline
|
|
« Ответ #16 : 23-03-2010 09:43 » |
|
СПАСИБО ВСЕМ! проблема решена. Вот что помогло: установка новой версии денвера(php5,mysql5), замена сp1251 на utf8 в файле my.cnf, и в httpd.conf - AddDefaultCharset utf8, и пересохранение всех страниц на кодировку utf8.
|
|
|
Записан
|
|
|
|
kai121
Гость
|
|
« Ответ #17 : 17-09-2010 08:51 » |
|
Всем доброго времени суток. У меня похожая проблема. У меня Apache 2.2.16, MySQL 5.0.51a, PHP Version 5.2.14, PHPMyAdmin 3.1.3. Все таблицы в базе данных mysql сохранены в кодировке UTF-8 (utf8_general_ci). Сами php странички и скрипты тоже сохранены в UTF-8. в head страниц написано вот так
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Казахские символы нормально отображаются в браузере. Но когда я открываю phpmyadmin и просматриваю строки таблиц то там казахские символы идут кроказябриками. Что мне сделать чтобы в phpmyadmin тоже были нормальные казахские символы...
Я пробовал следующее:
в файле my.ini в двух местах было так:
default-character-set=latin1
Эти две строки поменял на: default-character-set=utf8
в файле httpd.conf добавил в произвольном месте:
AddDefaultCharset utf8
Раньше этой строки не было в в файле httpd.conf.
Но в PhpMyAdmin все равно крокозябрики...
Что делать?
Спасибо
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #18 : 17-09-2010 08:56 » |
|
а в какой кодировке страница phpadmin?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
kai121
Гость
|
|
« Ответ #19 : 17-09-2010 09:14 » |
|
а в какой кодировке страница phpadmin?
Вот взял с HEAD исходного кода страницы PhpMyAdmin <title>phpMyAdmin 3.1.3 - ma</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Пишет что charset=utf-8 Только не уверен так это смотреть или по другому..
|
|
|
Записан
|
|
|
|
|