Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

MySQL опять кодировка

Обсуждение темы MySQL опять кодировка в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Имеется база в windows - 1251 кодировке сайт с в windows - 1251 Цитата: <meta http-equiv="content-type" content="text/html; charset=windows-1251"> Однако при добавлении инфы с ...


Закрытая тема
 
Опции темы
Старый 14.05.2011, 22:24   #1
Имеется база в windows - 1251 кодировке
сайт с в windows - 1251

Цитата:
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
Однако при добавлении инфы с сайта, в базу она сохраняется в виде ????
Сохранил вручную в базу город Москва, в базе он как Москва а на сайт вылазиент как ??????
Т.е. при наличии в базе следующего:
Цитата:
(5, 'Москва', 'moskva', 0, 0, '0', 0, NULL, '', 0),
(6, '??????', 'ozersk', 0, 0, '0', 0, NULL, '', 0);
на сайте появляются ????, в базу сохраняются тоже только ????


Как исправить?
Изображения
Тип файла: gif ef5ba4142df117120c5a5f6d8d573856.gif (51.2 Кб, 8 просмотров)

Последний раз редактировалось 74ivan74; 14.05.2011 в 22:27..
 
Старый 14.05.2011, 22:24
Ссылки
Старый 14.05.2011, 23:09   #2
скорее всего нужно перед записью в базу в php-скрипте провести перекодировку переменной из get/post запроса. например так:
$city=iconv("utf-8","cp1251",urldecode($_GET['city']));
видимо с сайта идет в utf-8 - такое бывает например если используются ajax запросы или например jQuery serializer

Добавлено через 58 секунд

или же править скрипт клиентской части, чтобы отправлялось в 1251 принудительно. но я лично предпочитаю первый вариант.

Последний раз редактировалось redreem; 14.05.2011 в 23:09.. Причина: Добавлено сообщение
 
Этот пользователь сказал спасибо redreem за это полезное сообщение:
74ivan74 (14.05.2011)
Старый 15.05.2011, 00:15   #3
Цитата:
Сообщение от redreem Посмотреть сообщение
$city=iconv("utf-8","cp1251",urldecode($_GET['city']));
Нет, меня не хватает, чтобы в этом разобраться.
 
Старый 15.05.2011, 09:41   #4
берем php-файл скрипта, которому отсылается форма с сайта с введенными данными. ищем там строку, где из get/post данных забирается нужная перемення. например это переменная city - ищем или $_GET('city') или $_POST('city'). ну и меняем эту строчку на приведенный выше пример. Т.е. получается что мы забираем переменную и находу ее конвертим в нужную кодировку. Функция iconv как раз это и делает. Вот про это я и говорил - "прижало" Все тут просто. php.su - хороший справочник.
 
Этот пользователь сказал спасибо redreem за это полезное сообщение:
74ivan74 (15.05.2011)
Старый 15.05.2011, 16:25   #5
В главном index.php нашел

Цитата:
<?php

require('ini/debug_start.php');

require_once('init.php');


$types = ($_GET['types'] == '' ? $_POST['types']: $_GET['types']);

switch($types){

case 'search':
require('lib/search.php');
break;

case 'cat':
require('lib/cat.php');
break;

case 'cities':
require('lib/cities.php');
break;

case 'subcat':
require('lib/subcat.php');
break;

case 'region':
require('lib/region.php');
break;

case 'map':
require('lib/map.php');
break;

case 'period':
require('lib/period.php');
break;

case 'show':
require('lib/show.php');
break;

case 'add':
require('lib/add.php');
break;

case 'delete':
require('lib/delete.php');
break;

case 'update':
require('lib/update.php');
break;

case 'rules':
require('lib/rules.php');
break;

case 'note':
require('lib/note.php');
break;

case 'news_list':
require('lib/news-list.php');
break;

case 'news_show':
require('lib/news-show.php');
break;

case 'feedback':
require('lib/feedback.php');
break;

case 'contacts':
require('lib/contacts.php');
break;

case 'home':
default:

// подключаем главную страницу
require('lib/home.php');

break;
}

require('ini/debug_end.php');

?>
не это?

Добавлено через 29 минут

Нашел mysql.php почитал всякую хрень и прописал где получилось в mysql.php эту хрень
Цитата:
else {
mysql_query('SET NAMES cp1251');
}
теперь все работает как надо.

Последний раз редактировалось 74ivan74; 15.05.2011 в 16:25.. Причина: Добавлено сообщение
 
Старый 15.05.2011, 17:08   #6
странно, если это какая-то ЦМСка, то данная строка SET NAMES cp1251 при инициализации базы полюбому должна была быть. возможно ненужно было вручную прописывать, а нужно в ЦМСке задать 1251. например в ДЛЕ такая строка в файле \engine\classes\mysqli.class.php: mysqli_query($this->db_id, "SET NAMES '" . COLLATE . "'");
 
Старый 15.05.2011, 18:08   #7
Это скрипт доски объявлений

Цитата:
возможно ненужно было вручную прописывать, а нужно в ЦМСке задать 1251
получается я в ЦМСке и задал, только что задал хз, не понял, но работает
 
Старый 15.05.2011, 18:08
Закрытая тема


Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кодировка BleSSeD HTML, CSS, JavaScript 7 30.09.2008 18:21
кодировка Nielson ASP, Perl, PHP и MySQL 9 02.03.2006 21:48
Опять я и опять помощь.... ivan341 Зал дебютантов 5 23.11.2005 10:23
Кодировка Jonis Зал дебютантов 2 27.06.2004 20:21
Кодировка в Dw Mx Chupa HTML, CSS, JavaScript 2 13.07.2003 05:24


Текущее время: 17:07. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Дизайнерский форум