Большой Воронежский Форум

Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел.
Вернуться   Большой Воронежский Форум » Компьютеры и все, что с ними связано » » Веб-дизайн
Что касается web-а... WebMaster-а Воронежа - объединяйтесь!

Закрытая тема
 
Опции темы
Старый 05.01.2012, 14:42   #1   
Форумец
 
Аватар для AlexanderSergeev
 
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31

AlexanderSergeev вне форума Не в сети
Снова AJAX и русские символы..

Хоть убейте, все инструкции про то, что нужно серверную часть в cp-1251 переводить через iconv или header..но у меня все в Utf-8



База данных, таблица в этой БД, файлы ajax.php и index.php в utf-8 все.

На странице Index.php jQuery Посылает аякс запрос к ajax.php, через POST.
Переменная содержит русские и английские символы.

Пробывал я по-разному, но чтобы ровно от и до стало - не получилось.

Каким образом передать переменную с русскими буквами?
Где и что кодировать/декодировать?
 
Старый 05.01.2012, 16:27   #2   
blocked
 
Сообщений: 20,415
Регистрация: 21.03.2010
Записей в дневнике: 1

anadonam вне форума Не в сети
Цитата:
Сообщение от AlexanderSergeev Посмотреть сообщение
Каким образом передать переменную с русскими буквами?
если передаешь при помощи формы то оно само.
но можно и вот так http://php.net/manual/ru/function.urldecode.php

если у других все наман отображается а у тя нет то пропиши:

.htaccess

AddDefaultCharset windows-1251

ps/ аякс не аякс - нет разницы. или может быть несоотвествие формата данных в БД с форматом верстки шаблона (тож частая ошибка - когда БД утф 8 а файлы 1251)
 
Старый 05.01.2012, 16:28   #3   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Цитата:
Сообщение от AlexanderSergeev Посмотреть сообщение
База данных, таблица в этой БД, файлы ajax.php и index.php в utf-8 все.

На странице Index.php jQuery Посылает аякс запрос к ajax.php, через POST.
Переменная содержит русские и английские символы.

Пробывал я по-разному, но чтобы ровно от и до стало - не получилось.

Каким образом передать переменную с русскими буквами?
Где и что кодировать/декодировать?
Ничего специально делать не надо. Что-то у тебя, очевидно, не в utf-8.

Нужно:
1. почистить код от результатов предыдущих попыток исправления ситуации (от перекодирования в cp1251, если кто не понял);
2. проверить, что все страницы отдаются браузеру с заголовком (для html) Content-Type: text/html; charset=utf-8
и/или содержат соответствующий тег meta, особенно это касается ответа от ajax.php;
3. проверить само содержимое файлов еще раз;
4. для mysql проверить кодировки таблиц и кодировку соединения (еще раз).
 
Старый 05.01.2012, 16:38   #4   
Наночлен
 
Аватар для DRON-ANARCHY
 
Сообщений: 30,594
Регистрация: 06.09.2006
Возраст: 37

DRON-ANARCHY вне форума Не в сети
AlexanderSergeev, сервер на чем работает? ОС
 
Старый 05.01.2012, 17:13   #5   
Форумец
 
Аватар для AlexanderSergeev
 
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31

AlexanderSergeev вне форума Не в сети
Цитата:
Сообщение от DRON-ANARCHY Посмотреть сообщение
AlexanderSergeev, сервер на чем работает? ОС
Мне почем знать?..хостинг купил да и все. Мне кажется все проще..

Короче все проверил, везде utf-8
Единственное, эти данные изначально приходят с другого сервера (АПИ) и может они уже в JS не в той кодировке.

Как их средствами JS (+jquery) еще до отправки через аякс перекодировать в utf-8?
 
Старый 05.01.2012, 17:23   #6   
Форумец
 
Аватар для AlexanderSergeev
 
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31

AlexanderSergeev вне форума Не в сети
Хм..выводятся на страницу переменные как надо, а вот писаться в базу не хотят.

В htaccess кодировка utf-8
В подключении БД setnames utf-8
Все задействованные файлы в utf-8 через meta или Content-type
БД сама и таблицы все в utf-8
Все пдключаемые библиотеки (кроме тех, что грузятся для Api с контакта) тоже в utf-8
Все не мои библиотеки, подключаемые ссылками (src) прописаны charset="utf-8"

НО БЛИН АЯКС В БД (в чистом виде без encode и iconv всяких) КРАКОЗЯРБЫ ШЛЕТ..
В итоге получаются вида,декодер пишет вот такое (прилож.).

То, что в левом поле на скрине - копипаст с базы данных.


Как-то где-то что-то прописать надо..подскажите?
Миниатюры
Нажмите на изображение для увеличения
Название: dff.jpg
Просмотров: 9
Размер:	23.6 Кб
ID:	1659368  
 
Старый 05.01.2012, 17:24   #7   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Цитата:
Сообщение от AlexanderSergeev Посмотреть сообщение
Единственное, эти данные изначально приходят с другого сервера (АПИ) и может они уже в JS не в той кодировке.
Это, кстати, не имеет значения до тех пор пока данные приходят с корректно указанной кодировкой в заголовке. То есть, например, если с вашей страницы в кодировке utf-8, отправляется ajax-запрос на сервер mudaki.com и ответ приходит в windows-1251, перекодированием браузер займется самостоятельно.
 
Старый 05.01.2012, 17:30   #8   
Форумец
 
Аватар для AlexanderSergeev
 
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31

AlexanderSergeev вне форума Не в сети
Цитата:
Сообщение от silly Посмотреть сообщение
Это, кстати, не имеет значения до тех пор пока данные приходят с корректно указанной кодировкой в заголовке. То есть, например, если с вашей страницы в кодировке utf-8, отправляется ajax-запрос на сервер mudaki.com и ответ приходит в windows-1251, перекодированием браузер займется самостоятельно.
mudaki.com до сих пор в 1251? вот те на))
 
Старый 05.01.2012, 17:32   #9   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Можно конкретный сервис назвать? Не вконтактик случайно?
 
Старый 05.01.2012, 17:33   #10   
blocked
 
Сообщений: 20,415
Регистрация: 21.03.2010
Записей в дневнике: 1

anadonam вне форума Не в сети
1251 винда (и с виндой удобней)
utf 8 юникс (и удобно когда комп "юзера на нем)


кому как удобней так и работают )..

 
Старый 05.01.2012, 17:40   #11   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Винда — это UCS-2LE/UTF-16.
 
Старый 05.01.2012, 18:17   #12   
Форумец
 
Аватар для AlexanderSergeev
 
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31

AlexanderSergeev вне форума Не в сети
Да как что конвертировать подскажите..по факту..
 
Старый 05.01.2012, 18:51   #13   
blocked
 
Сообщений: 20,415
Регистрация: 21.03.2010
Записей в дневнике: 1

anadonam вне форума Не в сети
AlexanderSergeev,
рассказываю инструкцию к выполнению. (но над пробывать)

открой MSворд - напиши там всё что тебе нужно - например фразу "привет мир"
документ -> сохранить как-> выбираешь .txt .

потом тя спросит кодировку - выбираешь юникод UTF8 сохраняешь.

потом открываешь это "досовским редактором" напрмер я юзаю вин навигатор

о или лучше так




http://tools.mydiv.net/endecode/

вот эту байду и присваивай переменной и смари чё будит.

Последний раз редактировалось anadonam; 05.01.2012 в 19:07.
 
Старый 05.01.2012, 18:55   #14   
Форумец
 
Аватар для AlexanderSergeev
 
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31

AlexanderSergeev вне форума Не в сети
блин...iconv("windows-1251","windows-1251",$_POST['uinfo'])
тоже не пашет))) xd

чеж ей надо, БД этой
 
Старый 05.01.2012, 19:10   #15   
blocked
 
Сообщений: 20,415
Регистрация: 21.03.2010
Записей в дневнике: 1

anadonam вне форума Не в сети
AlexanderSergeev, уже отписал что. оно.
утя файлы в кодировке utf а ты пишеш в них текст 1251. (а=текст) - после нажатия сохранить: текст > херь
это потому что у тя домашний комп на винде. или юзай редактор, работающй с утф - например дримвьювер годится
[конечно имхо] но ты пробуй - (а=ХренатеньUTF8) как на картинке - как к клавы их вводить я хз.
 
Старый 05.01.2012, 19:11   #16   
Форумец
 
Аватар для AlexanderSergeev
 
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31

AlexanderSergeev вне форума Не в сети
А вот интересно...
Что iconv из вин в ютф, что из ютф в вин при дальнейшей записи в БД выдают кракозябры, правда разные.
 
Старый 05.01.2012, 19:16   #17   
Форумец
 
Аватар для AlexanderSergeev
 
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31

AlexanderSergeev вне форума Не в сети
Цитата:
Сообщение от anadonam Посмотреть сообщение
AlexanderSergeev, уже отписал что. оно.
утя файлы в кодировке utf а ты пишеш в них текст 1251. - после нажатия сохранить: текст > херь
дык я до сохранить перевожу текст в ютф, и всеравно херь=кракозябры, но разные.


Походу что-то надо еще до отправки через ajax мутить..с кодировкой, на JS
 
Старый 05.01.2012, 19:19   #18   
Форумец
 
Аватар для AlexanderSergeev
 
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31

AlexanderSergeev вне форума Не в сети
я дурак чтолЕ)
Я обычно то через DW свойства страницы кодировку меняю, плюс 2-3 редактора под рукой про запас..так что с этим все в порядке)
Просто я в недоумении..че делать-то.
Везде все норм, а в базу хрень пишется.



Вот еще прикол:
1. Обработка переменной на JS > Передача в PHP через AJAX
2. Добавление переменной (POST) в базу + echo этой же переменной.

Так вот, в базу пишутся кракозябры, а ajax (success function) выдает ALERT на ура, русскими буквами.
 
Старый 05.01.2012, 19:25   #19   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Как насчет оформления всей этой логики в отдельный пример с кодом?
 
Старый 05.01.2012, 19:40   #20   
Форумец
 
Аватар для AlexanderSergeev
 
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31

AlexanderSergeev вне форума Не в сети
Пример

Это из index.php

function info(uinfo){
jQuery.ajax({
type: "POST",
url: 'http://'+document.domain+'/ajax.php',
data: "uinfo="+uinfo,
error: function(){
info(uinfo);
},
success: function(data){alert(data);}
});
}


Это ajax.php

$dba = mysql_connect ("localhost","user","password");
mysql_select_db ("mytable",$dba);
$uinfo=$_POST['uinfo']; /*че с ней тут делать-то?*/
$uinfo="<li>".$uinfo."</li>";
mysql_query("insert into info (uinfo) values ('".$uinfo."')");
echo $uinfo;
 
Старый 05.01.2012, 19:44   #21   
Форумец
 
Сообщений: 292
Регистрация: 21.01.2011

sape вне форума Не в сети
function info(uinfo){
jQuery.ajax({
type: "POST",
url: 'http://'+document.domain+'/ajax.php',
data: "uinfo="+uinfo,
error: function(){
info(uinfo);
},
success: function(data){alert(data);}
});
}


Это ajax.php

header('Content-type: text/html; charset=utf-8;');
$dba = mysql_connect ("localhost","user","password");
mysql_select_db ("mytable",$dba);
mysql_query('SET NAMES `utf8`');
$uinfo=$_POST['uinfo']; /*че с ней тут делать-то?*/
$uinfo="<li>".$uinfo."</li>";
mysql_query("insert into info (uinfo) values ('".$uinfo."')");
echo $uinfo;
 
Старый 05.01.2012, 19:49   #22   
Форумец
 
Аватар для AlexanderSergeev
 
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31

AlexanderSergeev вне форума Не в сети
Это есть...таже фигня((

АН НЕТ!))
Заработало..блин, видимо у меня синтакс неправильный был, до того как я отчаялся..гхм
mysql_query('SET NAMES `utf-8`');
mysql_query('SET NAMES `utf8`');

дауж))
СПАСИБО ВСЕМ!
 
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind