Помощник
|
Изменение кодировки на лету |
anethum
|
Сообщение
#1
|
||
|
|
||
|
|||
Arks |
27.10.2010, 17:06;
Ответить: Arks
Сообщение
#2
|
|
http://www.php.ru/manual/ref.iconv.html
кодируйте запрос летящий в базу обратно в CP1251 функцией iconv вообще это сложный вопрос, я бы посоветовал привести все к UTF-8 |
|
|
alexdrob |
27.10.2010, 17:10;
Ответить: alexdrob
Сообщение
#3
|
|
Сохраняйте страничку в юникоде.
Делайте после соеденения с базой такой запрос [PHP]mysql_query('set names utf8');[/PHP] и будет вам счастье без iconv)) |
|
|
Arks |
27.10.2010, 17:30;
Ответить: Arks
Сообщение
#4
|
|
alexdrob, то что юзер введет в поиск и полетит в базу все равно по идее надо предварительно перекодировать а то в запросе к базе даже после SET NAMES будут кракозябры(которые затем перекодируются в CP1251 при соединении с базой), надеюсь конечно что я ошибаюсь, точно не могу сказать.
|
|
|
Letmetouchyou |
27.10.2010, 17:34;
Ответить: Letmetouchyou
Сообщение
#5
|
|
|
|
|
alexdrob |
27.10.2010, 17:50;
Ответить: alexdrob
Сообщение
#6
|
|
создай таблицу
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=cp1251 она будет в cp1251 создай скрипт [PHP]<?php mysql_connect('localhost','root','root'); mysql_select_db('test'); mysql_query('set names utf8'); isset($_GET['s']) && mysql_query("insert into `table` (`name`) values ('$_GET[s]')") or die(mysql_error()); ?> <form> <input type="text" name="s"/> <input type="submit"/> </form>[/PHP] сохрани в utf8 без BOM и добавь запись, предварительно убедившись что в браузере utf8 установлена кодировка,всё будет прекрасно работать)) потом измени строку mysql_query('set names utf8'); на mysql_query('set names cp1251'); и пересохрани файл в cp1251 выполни, опять же всё будет работать |
|
|
Arks |
27.10.2010, 18:41;
Ответить: Arks
Сообщение
#7
|
|
вот, о чем я и говорю.
Смысл в том что кодировка в браузере и в базе должна совпадать. По теме автора мы что делаем: говорим браузеру: браузер, установи пожалуйста кодировку по-умолчанию UTF-8 и перекодируй все выводимые скриптом символы(в т.ч. установи кодировку input'а) в UTF-8 а скрипту который кладет данные в базу говорим: скрипт, пожалуйста все символы клади в базу в кодировке CP1251 Следовательно юзер заполнит в браузере форму, которую браузер считает в кодировке UTF-8 и захочет эту информацию положить в базу в кодировке CP1251, а она в UTF-8 => кодировки вводной и выводной информации не совпадают => кракозябры в базе. |
|
|
alexdrob |
27.10.2010, 18:49;
Ответить: alexdrob
Сообщение
#8
|
|
|
|
|
Arks |
27.10.2010, 19:01;
Ответить: Arks
Сообщение
#9
|
|
Кодировка перекодируется сама к той которую мы указали. перекодируется она как раз php-интерпретатором с помощью iconv, SET NAMES только указывает mysql-серверу тип сопоставления(так же как SET COLLATION в более ранних версиях)В общем, лучше не буду спорить.. замечу только что не понмиаю тогда каким местом думали разработчики если все так как Вы описываете, думаю еще будет случай все проверить.. |
|
|
alexdrob |
27.10.2010, 19:03;
Ответить: alexdrob
Сообщение
#10
|
|
где вы видите в моём примере использование iconv?)
|
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Редактирование HTML кодировки текстов. | 7 | Neospeak | 3900 | 28.11.2018, 4:20 автор: Neospeak |
|
Изменение дизайна шаблона Joomla | 0 | neesupermario | 1822 | 3.1.2018, 15:20 автор: neesupermario |
|
Изменение шрифта в placeholder | 6 | Alexej_mw | 2465 | 24.8.2017, 12:10 автор: Alexej_mw |
|
"На лету" определять пол, возраст, интересы посетителя И исходя из этого показывать нужную рекламу пользователю |
4 | Velsevul | 2785 | 12.8.2017, 17:41 автор: Nefilim11 |
|
Изменение цвета в шаблоне | 18 | shulz | 3171 | 5.12.2016, 17:11 автор: shulz |
Текстовая версия | Сейчас: 26.4.2024, 7:27 |