![]() |
кодировка utf8 для базы
настроил mysql в настройках программы т.е. не вручную на кодировку utf8 , черная табличка теперь не проскакивает как раньше когда настраивал таки образом на ср1251 и все нормально прописываю пароль далее велком, создаю базу, затем в ней две таблицы все супер, только начинаю занасить в них данные русскими буквами, показывает сразу такую строку
eror 1366(HYOOO): incorrect string value: '\x19\XA0\XAC\XA0\XE0\XA0' for column 'cityo' at row1, что это может означать, может кодировка компьютера не подходит, для базы? уменя виста стартер и она самая минифункциональная |
Тема двигается my.ini выглядит теперь так
[mysql] default-character-set=utf8 [mysqld] character-set-server = utf8 collation-server = utf8_unicode_ci character-sets-dir=C:\Program Files\MySQL\MySQL Server 6.0\share\charsets default-character-set=utf8 к этому перед тем как заносить данные на русском в базу прописываю mysql>SET NAMES CP1251 и данные загружаются и норма, только вот в файл выводить не пробЫвал, может и радоваться не чему ) кстати хоть таблица и настроенна на utf8, прописываешь перед загрузкой mysql>SET NAMES utf8 возникает как раньше eror 1366(HYOOO): incorrect string value: '\x19\XA0\XAC\XA0\XE0\XA0' for column 'cityo' at row1 |
не двигается тема рановато для радости
ввывожу таблицу <?php $db = mysql_connect("localhost","root","123"); mysql_select_db("per" ,$db); $sql = mysql_query("SELECT * FROM pe" ,$db); echo ("<table border ='1'>"); echo ("<tr><td>Адрес</td><td>Описание</td></tr>"); while ($tablerows = mysql_fetch_row($sql)) { echo("<tr><td>$tablerows[2]</td></tr> "); } echo "</table>"; mysql_close($db); ?> выводит в браузер вопросы, только цифры нормально показываются и может кто знает автоматическая кодировка в браузере переключается на турецкую? |
dima1981,
а PHP код:
|
Можно еще так попробовать.
Код:
<meta http-equiv="Content-Type" content="text/html; charset=WINDOWS-1251" /> Цитата:
Код:
select address, descr from pe |
хорошо, только куда прописывать
Цитата:
Цитата:
Цитата:
Понимаю так к примеру есть форма на странице в нее вносится информация нажимается кнопка "submit", затем данные action-ом передаются какому то скрипту php, который устанавливает соединение с mysql предоставив ей пароль, имя, сервер, потом этот скрипт указывает мусклу в какой кодировке станет вносить данные например koi8r и данные нормально записываются и хранятся до того как к ним сделается запрос скриптом php который установит соединение, обозначит кодировку для мускула в которой извлекает данные koi8r, делает это и передает эти данные на страницу сайта, при этом сам мускул настроен до того как к нем обращаются указываяя в какой кодировке собераются производить дальнейшие действия находится в latin1. или все совсем не так, тогда пожалуйста скажите хоть кто то, как настроить мускл чтоб загружать в него данные на русском языке, потом извлечь данные соответствующие запрсу поиска на html страницу? |
dima1981, мне кажется, вам надо сначала почитать документацию про принципы работы web-приложений, прежде чем писать такие проекты. Не в обиду.
Едем дальше: Цитата:
Цитата:
Вы для начала научитесь отправлять, сохранять и возвращать значения хотя бы на англ. языке, а потом уже будете мучиться с локализацией. |
Цитата:
PHP код:
То есть попробуй так: PHP код:
Получается??? |
vadimiron, спасибо за код сейчас новую базу создаю как создастся коректно отпишусь.
Delirium, Цитата:
кстати какой формат таблиц выбрать MyISAM или InnoDB который поновее? |
Цитата:
Код:
select FirstCess, SecondCell, address from your_table Про формат таблиц ничего не скажу, не работал плотно с mysql. |
понял Delirium, спасибо, теперь далее, если настраиваю мускул в binary весь, то что тут такого?
что то так сделал заношу данные на рус-ом в базе отображаются нормально, теперь я могу совершать выборку всей таблицы например в кодировке ср1251 или там utf8 указывая set names utf8 например ? кстати my.ini теперь выглядит так: [mysql] default-character-set=binary # SERVER SECTION # ---------------------------------------------------------------------- # # The following options will be read by the MySQL Server. Make sure that # you have installed the server correctly (see above) so it reads this # file. # [mysqld] # The TCP/IP Port the MySQL Server will listen on port=3306 #Path to installation directory. All paths are usually resolved relative to this. basedir="C:/Program Files/MySQL/MySQL Server 6.0/" #Path to the database root datadir="C:/ProgramData/MySQL/MySQL Server 6.0/Data/" # The default character set that will be used when a new schema or table is # created and no character set is defined default-character-set=binary # The default storage engine that will be used when create new tables when default-storage-engine=INNODB как вы считаете тут все нормально? теперь совсем даже вопросов не выводит, может все из за INNODB, потому что пример с сайта на который там ссылку оставлял Цитата:
там когда показываются свойства таблицы то внизу указано ENGINE=MyISAM тогда как у меня ENGINE=INNODB |
Если все работает, открывает, сохраняет, обрабатывает - то пусть работает и по барабану какой у него ENGINE, главное - результат.
|
Цитата:
так что то теперь все работает только вот работающий скрипт php раздобыть не могу который бы всю базу извлекал на страницу, когда он у меня появится тогда и станет ясно на сколько нынешний подход с binary эфективен. Цитата:
|
Цитата:
|
мог бы ставил бы, ставлю как могу и вы простите мне мою неграмотность.
этот скрипт что то не срабатывает при той кодировке которая тогда была когда vadimiron разместил этот скрипт, срабатывало теперь нет, да и с форматированием он, но нужен такой, который выводит данные, например из базы rr, таблицы pp как есть без <tr> и < td> |
кто может подсказать, подскажите пожалуйста где хранятся базы и что делать если нету на диске C папки ProgrammData?
|
Цитата:
|
спасибо Delirium, за рекомендации, да не врубаюсь.
если бы я прочитал такое сообщение то понял бы, единственное уточнил бы чтоб наверняка убедиться, вывести данные как есть, значит не размещая их в таблицу штмл? на что получил бы ответ, если бы у того кто писал это осталась потребность в решение такой задачи, да и тогда если знаю решение и есть время и желание и т.д. и т.п. напишу за пару минут этот скрипт, уверен там в нем от силы пять строк, хотя можно и в одну, этот скрипт мне для тестирования нужен и только, когда увижу что данные нормально выводятся из таблицы и все здорово настроено, тогда естественно возьмусь за подробное чтение инфы по данному вопросу, если например у меня с настройками базы не то что то то про пхп могу хоть обчитаться но толку не будет. пойду за скриптом, если не окажиться в интернете такого, вернусь обязательно так и так вернусь и не важно хотите вы меня видеть или нет тут, вы лучше сразу скажите об этом тогда свалю и баста, то то разговоры какие то пошли такими темпами скоро начнется "курсивом надо печатать, цифры буквами и тому подобное" с обычной темой всего навсего обратился |
Посмотрите пожалуйста код, запарился я совсем
<?php $db = mysql_connect("localhost","root","123"); mysql_query("SET NAMES 'cp1251'"); mysql_query("SET CHARACTER SET 'cp1251'"); mysql_select_db("test" ,$db); $sql = mysql_query("SELECT * FROM I" ,$db); echo ("<table border ='1'>"); echo ("<tr><td>Адрес</td><td>Описание</td></tr>"); while ($tablerows = mysql_fetch_row($sql)) { echo("<tr><td><a href='$tablerows[1]'>$tablerows[1]</a></td><td>$tablerows[2]</td></tr> "); } echo "</table>"; mysql_close($db); ?> таблица в кодировке binary данные заносились в кодировке cp1251 показывает Fatal error: Call to undefined function mysql_connect() in C:\apache\localhost\www\1.php on line 2 апач 2.2.9 мускул 6.0 php5 до этого этот код выводил данные только тогда кодировка была utf8, но это браузер не про кодировку же говорит? |
Цитата:
Цитата:
|
идет, спасибо вам. буду с функциями разбераться )
с какой строки он начинает отсчет с этой <?php ? что то у меня и тест мускула с рнр не срабатывает...онлаине 5 |
да, ругается на строку
Код:
$db = mysql_connect("localhost","root","123"); |
повидимому с ней что то не так, захожу в мускл из меню пуск, набераю пароль 123, мне в ответ велком, набераю юзе тест,
потом селект * фром I потом хорошо появляется таблица. прошу прощение за транслит, бахнул стандартный переключатель сегодня теперь с пунтом а тут переключать, настоящий атас, уверен понимаете в другом файле он либо на эту строку mysql_free_result($listOfDbs);?> либо на эту $noOfDbs = 0; зависит от того штмл теги считаются, такие как штмл и боди например, если считаются то первая строка, если не считаются то вторая. вообщем ничего не понимаю ... |
у вас точно PHP корректно настроен? Потому что говорится не о ошибке в подключении, а о том, что сама функция неизвестна, т.е. интерпретатор ее не понимает. Хотя функция написана верно.
|
функцию пшп инфо отображает хорошо, таблица как в учебнике появляется
может чего там не раскоментированно, но вроде как рнр был установлен сразу, так и есть к нему в настройки и не захожу практически т.е. совсем не захожу, получается не с того не с сего это началось в смысле онлине показывать со вчерашнего или сегодняшнего дня, не могу и представить что здесь может быть |
Создайте такую php страницу
PHP код:
|
да т.е. не коректно, онлине 2
кстати может из за настроек таблицы там первые шесть пунктов бинарные и один последний ютф8, но там нормально отображаются символы. сейчас как раз по яндексу начал лазить на счет настроек рнр, в целом безрезультатно, продолжу пойду потихоньку, потому что действительно не понятная ситуация какая то |
Цитата:
mysql_query("SET NAMES 'cp1251'"); mysql_query("SET CHARACTER SET 'cp1251'"); из кода и оставьте только строки с echo - отобразит таблицу? |
да отоброжает адрес описание
не линкуется, да? |
значит php воспринимает. Надо смотреть настройки php сервера(APACHE стоит, я так понимаю), почему он не коннектит.
|
2.2.9 apache спасибо огромное Delirium, пойду с апаче разбераться, сегодня только установил, только даже с чего начинать не знаю рнр показывается, мускул нет,скорее всего думаю в конфе, что то, до этого апач был из связки 2055, но этот с заграницы скачан там у них и штппд разные полазию посмотрю в яндексе, так то вообщем устанавливал в соответствии с инструкциями но кто знает...
|
готово. )
это все из за невнимательности, огромное вам спасибо, респект и уважуха!!! ) и данные стали выводиться на английском четко, но вот с русским не важно, но это поправимо и думаю цветочки посравнению с тем, что было ) |
Рад, что смог помочь :)
|
и все таки не могу понять,вот vadimiron говорит везде устанавливать кодировку utf8 так, устанавливаю при стандартной настройке эту кодировку, все хорошо т.е. велком, корректирую настройки set names 'cp1251', создаю таблицу
CREATE TABLE tabl ( ...............)DEFAULT CHARSET cp1251;, начинаю инсертить часть данных с русскими буквами, часть с английскими в неё, все супер сохраняются в базе отоброжаются чудно, и на страницу выводятся, только английский алфавит видно отлично, но русский какие то закорючки ничего не могу понять, что тут сделать порекомендуете? заранее спасибо. |
захожу в мускул по умолчанию настроен на latin1,
набераю set names cp866;, создаю базу CREATE DATABASE ddd; создаю таблицу CREATE TABLE tabl2 (im varchar(20), em text)DEFAULT CHARSET cp1251; заполняю таблицу INSERT INTO tabl2 (im, em) values ("Имя","123@123.com") набераю set names cp1251;, выполняю скрипт <?php $db = mysql_connect("localhost","root","123"); mysql_select_db("ddd" ,$db); mysql_query("SET NAMES 'cp866'"); mysql_query("SET CHARACTER SET 'cp1251'"); $sql = mysql_query("SELECT * FROM tabl2" ,$db); echo ("<table border ='1'>"); echo ("<tr><td>Имя</td><td>Адрес</td></tr>"); while ($tablerows = mysql_fetch_row($sql)) { echo("<tr><td>$tablerows[1]</td><td>$tablerows[2]</td></tr>"); } echo "</table>"; mysql_close($db); ?> на windows так, потому, что с кодировками не важно обстоит |
Время: 19:42. |
Время: 19:42.
© OSzone.net 2001-