Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
![]() |
||
![]() |
Что касается web-а... WebMaster-а Воронежа - объединяйтесь! |
![]() |
|
Опции темы
![]() |
![]() |
#1 |
Форумец
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31
![]() |
Снова AJAX и русские символы..
Хоть убейте, все инструкции про то, что нужно серверную часть в cp-1251 переводить через iconv или header..но у меня все в Utf-8
База данных, таблица в этой БД, файлы ajax.php и index.php в utf-8 все. На странице Index.php jQuery Посылает аякс запрос к ajax.php, через POST. Переменная содержит русские и английские символы. Пробывал я по-разному, но чтобы ровно от и до стало - не получилось. Каким образом передать переменную с русскими буквами? Где и что кодировать/декодировать? |
![]() |
![]() |
#2 |
blocked
|
если передаешь при помощи формы то оно само.
но можно и вот так http://php.net/manual/ru/function.urldecode.php если у других все наман отображается а у тя нет то пропиши: .htaccess AddDefaultCharset windows-1251 ps/ аякс не аякс - нет разницы. или может быть несоотвествие формата данных в БД с форматом верстки шаблона (тож частая ошибка - когда БД утф 8 а файлы 1251) |
![]() |
![]() |
#3 | |
highly mean
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35
![]() |
Цитата:
Нужно: 1. почистить код от результатов предыдущих попыток исправления ситуации (от перекодирования в cp1251, если кто не понял); 2. проверить, что все страницы отдаются браузеру с заголовком (для html) Content-Type: text/html; charset=utf-8 и/или содержат соответствующий тег meta, особенно это касается ответа от ajax.php; 3. проверить само содержимое файлов еще раз; 4. для mysql проверить кодировки таблиц и кодировку соединения (еще раз). |
|
![]() |
![]() |
#4 |
Наночлен
Сообщений: 30,594
Регистрация: 06.09.2006
Возраст: 37
![]() |
AlexanderSergeev, сервер на чем работает? ОС
|
![]() |
![]() |
#5 |
Форумец
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31
![]() |
Мне почем знать?..хостинг купил да и все. Мне кажется все проще..
Короче все проверил, везде utf-8 Единственное, эти данные изначально приходят с другого сервера (АПИ) и может они уже в JS не в той кодировке. Как их средствами JS (+jquery) еще до отправки через аякс перекодировать в utf-8? |
![]() |
![]() |
#6 |
Форумец
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31
![]() |
Хм..выводятся на страницу переменные как надо, а вот писаться в базу не хотят.
В htaccess кодировка utf-8 В подключении БД setnames utf-8 Все задействованные файлы в utf-8 через meta или Content-type БД сама и таблицы все в utf-8 Все пдключаемые библиотеки (кроме тех, что грузятся для Api с контакта) тоже в utf-8 Все не мои библиотеки, подключаемые ссылками (src) прописаны charset="utf-8" НО БЛИН АЯКС В БД (в чистом виде без encode и iconv всяких) КРАКОЗЯРБЫ ШЛЕТ.. В итоге получаются вида,декодер пишет вот такое (прилож.). То, что в левом поле на скрине - копипаст с базы данных. Как-то где-то что-то прописать надо..подскажите? |
![]() |
![]() |
#7 |
highly mean
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35
![]() |
Это, кстати, не имеет значения до тех пор пока данные приходят с корректно указанной кодировкой в заголовке. То есть, например, если с вашей страницы в кодировке utf-8, отправляется ajax-запрос на сервер mudaki.com и ответ приходит в windows-1251, перекодированием браузер займется самостоятельно.
|
![]() |
![]() |
#8 | |
Форумец
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31
![]() |
Цитата:
|
|
![]() |
![]() |
#12 |
Форумец
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31
![]() |
Да как что конвертировать подскажите..по факту..
|
![]() |
![]() |
#13 |
blocked
|
AlexanderSergeev,
рассказываю инструкцию к выполнению. (но над пробывать) открой MSворд - напиши там всё что тебе нужно - например фразу "привет мир" документ -> сохранить как-> выбираешь .txt . потом тя спросит кодировку - выбираешь юникод UTF8 сохраняешь. потом открываешь это "досовским редактором" напрмер я юзаю вин навигатор о или лучше так ![]() http://tools.mydiv.net/endecode/ вот эту байду и присваивай переменной и смари чё будит. Последний раз редактировалось anadonam; 05.01.2012 в 19:07. |
![]() |
![]() |
#14 |
Форумец
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31
![]() |
блин...iconv("windows-1251","windows-1251",$_POST['uinfo'])
тоже не пашет))) xd чеж ей надо, БД этой |
![]() |
![]() |
#15 |
blocked
|
AlexanderSergeev, уже отписал что. оно.
утя файлы в кодировке utf а ты пишеш в них текст 1251. (а=текст) - после нажатия сохранить: текст > херь это потому что у тя домашний комп на винде. или юзай редактор, работающй с утф - например дримвьювер годится [конечно имхо] но ты пробуй - (а=ХренатеньUTF8) как на картинке - как к клавы их вводить я хз. |
![]() |
![]() |
#16 |
Форумец
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31
![]() |
А вот интересно...
Что iconv из вин в ютф, что из ютф в вин при дальнейшей записи в БД выдают кракозябры, правда разные. |
![]() |
![]() |
#17 | |
Форумец
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31
![]() |
Цитата:
Походу что-то надо еще до отправки через ajax мутить..с кодировкой, на JS |
|
![]() |
![]() |
#18 |
Форумец
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31
![]() |
я дурак чтолЕ)
Я обычно то через DW свойства страницы кодировку меняю, плюс 2-3 редактора под рукой про запас..так что с этим все в порядке) Просто я в недоумении..че делать-то. Везде все норм, а в базу хрень пишется. Вот еще прикол: 1. Обработка переменной на JS > Передача в PHP через AJAX 2. Добавление переменной (POST) в базу + echo этой же переменной. Так вот, в базу пишутся кракозябры, а ajax (success function) выдает ALERT на ура, русскими буквами. |
![]() |
![]() |
#20 |
Форумец
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31
![]() |
Пример
Это из 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; |
![]() |
![]() |
#21 |
Форумец
Сообщений: 292
Регистрация: 21.01.2011
![]() |
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; |
![]() |
![]() |
#22 |
Форумец
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 31
![]() |
Это есть...таже фигня((
АН НЕТ!)) Заработало..блин, видимо у меня синтакс неправильный был, до того как я отчаялся..гхм mysql_query('SET NAMES `utf-8`'); mysql_query('SET NAMES `utf8`'); дауж)) СПАСИБО ВСЕМ! |
![]() |