если у других все наман отображается а у тя нет то пропиши:
.htaccess
AddDefaultCharset windows-1251
ps/ аякс не аякс - нет разницы. или может быть несоотвествие формата данных в БД с форматом верстки шаблона (тож частая ошибка - когда БД утф 8 а файлы 1251)
silly 16:28 05.01.2012
Сообщение от 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 проверить кодировки таблиц и кодировку соединения (еще раз).
DRON-ANARCHY 16:38 05.01.2012
AlexanderSergeev, сервер на чем работает? ОС
AlexanderSergeev 17:13 05.01.2012
Сообщение от DRON-ANARCHY: AlexanderSergeev, сервер на чем работает? ОС
Мне почем знать?..хостинг купил да и все. Мне кажется все проще..
Короче все проверил, везде utf-8
Единственное, эти данные изначально приходят с другого сервера (АПИ) и может они уже в JS не в той кодировке.
Как их средствами JS (+jquery) еще до отправки через аякс перекодировать в utf-8?
AlexanderSergeev 17:23 05.01.2012
Хм..выводятся на страницу переменные как надо, а вот писаться в базу не хотят.
В htaccess кодировка utf-8
В подключении БД setnames utf-8
Все задействованные файлы в utf-8 через meta или Content-type
БД сама и таблицы все в utf-8
Все пдключаемые библиотеки (кроме тех, что грузятся для Api с контакта) тоже в utf-8
Все не мои библиотеки, подключаемые ссылками (src) прописаны charset="utf-8"
НО БЛИН АЯКС В БД (в чистом виде без encode и iconv всяких) КРАКОЗЯРБЫ ШЛЕТ..
В итоге получаются вида,декодер пишет вот такое (прилож.).
То, что в левом поле на скрине - копипаст с базы данных.
Как-то где-то что-то прописать надо..подскажите?
Изображения
silly 17:24 05.01.2012
Сообщение от AlexanderSergeev:
Единственное, эти данные изначально приходят с другого сервера (АПИ) и может они уже в JS не в той кодировке.
Это, кстати, не имеет значения до тех пор пока данные приходят с корректно указанной кодировкой в заголовке. То есть, например, если с вашей страницы в кодировке utf-8, отправляется ajax-запрос на сервер mudaki.com и ответ приходит в windows-1251, перекодированием браузер займется самостоятельно.
AlexanderSergeev 17:30 05.01.2012
Сообщение от silly:
Это, кстати, не имеет значения до тех пор пока данные приходят с корректно указанной кодировкой в заголовке. То есть, например, если с вашей страницы в кодировке utf-8, отправляется ajax-запрос на сервер mudaki.com и ответ приходит в windows-1251, перекодированием браузер займется самостоятельно.
mudaki.com до сих пор в 1251? вот те на))
silly 17:32 05.01.2012
Можно конкретный сервис назвать? Не вконтактик случайно?
anadonam 17:33 05.01.2012
1251 винда (и с виндой удобней)
utf 8 юникс (и удобно когда комп "юзера на нем)
кому как удобней так и работают )..
silly 17:40 05.01.2012
Винда — это UCS-2LE/UTF-16.
AlexanderSergeev 18:17 05.01.2012
Да как что конвертировать подскажите..по факту..
anadonam 18:51 05.01.2012
AlexanderSergeev,
рассказываю инструкцию к выполнению. (но над пробывать)
открой MSворд - напиши там всё что тебе нужно - например фразу "привет мир"
документ -> сохранить как-> выбираешь .txt .
потом тя спросит кодировку - выбираешь юникод UTF8 сохраняешь.
потом открываешь это "досовским редактором" напрмер я юзаю вин навигатор
вот эту байду и присваивай переменной и смари чё будит.
AlexanderSergeev 18:55 05.01.2012
блин...iconv("windows-1251","windows-1251",$_POST['uinfo'])
тоже не пашет))) xd
чеж ей надо, БД этой
anadonam 19:10 05.01.2012
AlexanderSergeev, уже отписал что. оно.
утя файлы в кодировке utf а ты пишеш в них текст 1251. (а=текст) - после нажатия сохранить: текст > херь
это потому что у тя домашний комп на винде. или юзай редактор, работающй с утф - например дримвьювер годится
[конечно имхо] но ты пробуй - (а=ХренатеньUTF8) как на картинке - как к клавы их вводить я хз.
AlexanderSergeev 19:11 05.01.2012
А вот интересно...
Что iconv из вин в ютф, что из ютф в вин при дальнейшей записи в БД выдают кракозябры, правда разные.
AlexanderSergeev 19:16 05.01.2012
Сообщение от anadonam: AlexanderSergeev, уже отписал что. оно.
утя файлы в кодировке utf а ты пишеш в них текст 1251. - после нажатия сохранить: текст > херь
дык я до сохранить перевожу текст в ютф, и всеравно херь=кракозябры, но разные.
Походу что-то надо еще до отправки через ajax мутить..с кодировкой, на JS
AlexanderSergeev 19:19 05.01.2012
я дурак чтолЕ)
Я обычно то через DW свойства страницы кодировку меняю, плюс 2-3 редактора под рукой про запас..так что с этим все в порядке)
Просто я в недоумении..че делать-то.
Везде все норм, а в базу хрень пишется.
Вот еще прикол:
1. Обработка переменной на JS > Передача в PHP через AJAX
2. Добавление переменной (POST) в базу + echo этой же переменной.
Так вот, в базу пишутся кракозябры, а ajax (success function) выдает ALERT на ура, русскими буквами.
silly 19:25 05.01.2012
Как насчет оформления всей этой логики в отдельный пример с кодом?
$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;
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;
AlexanderSergeev 19:49 05.01.2012
Это есть...таже фигня((
АН НЕТ!))
Заработало..блин, видимо у меня синтакс неправильный был, до того как я отчаялся..гхм
mysql_query('SET NAMES `utf-8`');
mysql_query('SET NAMES `utf8`');