Новые форумы для: пользователей, администраторов, математиков и филологов.
0

Моя страница, которая получает ответы в кодировке utf-8, страница на которую шлю запросы тоже utf-8. У меня значение которое получает ajax ответом идёт в поле формы. И по какой-то причине в форму вставляется в юникоде, но кракозябрами, как будто кодировка кириллица. Ну я преобразовал с помощью функции iconv ответ в кириллицу, но т.к. обработчик у меня XML, мне выдаёт ошибку о недопустимом символе и действительно создаётся какой-то квадратик "FF". Но если шапку о том что это xml убрать квадратика не образуется. Подскажите пож-та как избавиться от квадратика, или как сделать чтобы в полях формы была кодировка юникод.

задан 22 Фев 16:26

mctrane's gravatar image

mctrane
91710
87% принятых

А ты не рассматривал как вариант гонять данные в json формате? к тому же их ещё и проще использовать из js

(22 Фев 16:48) RedMonkey

Дело в том, что у меня никогда не было таких проблем, всегда пользовался xml.

(22 Фев 16:55) mctrane

я тоже им всегда пользовался, пока не научился работать с json

(22 Фев 17:05) RedMonkey
1

Мда, оказывается надо было передавать имя в обработчик пропуская через функцию encodeURIComponent. Бред, никогда так не делал и не встречался с проблемами. Но главное победил я всё-таки) Всем спасибо.

ссылка

отвечен 22 Фев 17:15

mctrane's gravatar image

mctrane
91710

изменен 22 Фев 20:04

Angry%20Bird's gravatar image

Angry Bird
609310

1

Так если страница в ютф-8 и аякс отправляется в ютф8 (аякс запрос всегда в этой кодировке), надо проверить файл, который запрос обрабатывает, его кодировку и на наличие в нем левых символов, все ли там нормально

ссылка

отвечен 22 Фев 16:36

makregistr's gravatar image

makregistr
2.0k6

Я пол дня уже проверяю оброботчик, там всё нормально и если открывать ччерез браузер обработчик, то всё отлично отображается

(22 Фев 16:40) mctrane

Не могу почему то там добавить коммент, нет, всё в одном файле, самое интересное что если просто текст писать, то он нормально выводиться, а если выводить переменную, то кракозябрами почему-то

(22 Фев 17:10) mctrane
1

Уверен, что ответ приходит в utf? Когда отдаешь аяксовый ответ, перед выводом добавь

header('Content-Type:text/html; charset=utf-8');

Вместо text/html поставь, что нужно.

ссылка

отвечен 22 Фев 16:50

Ring's gravatar image

Ring
461

изменен 22 Фев 20:05

Angry%20Bird's gravatar image

Angry Bird
609310

У меня xml, и написано header('Content-Type: text/xml; charset=utf-8');

(22 Фев 16:52) mctrane

@ Ну я преобразовал с помощью функции iconv ответ в кириллицу @

И отдаешь с заголовком charset=utf-8?

(22 Фев 16:54) Ring

Нет, я преобразовывал чисто для теста. Но и без преобразования херня получается.

(22 Фев 16:57) mctrane

А откуда данные берутся, которые в ответе приходят? И можешь скопипастить строку, которая в инпуте появляется?

(22 Фев 17:01) Ring

Скрипт работает так: вводишь своё имя, в другое поля забивается имя в дательном падеже, пишу в поле имя "Тест", в поле дательный падеж должно быть написано "Тесту", а пишет "Тест"

(22 Фев 17:01) mctrane

Да, сейчас попробывал ничего не генерировать, а написал просто, чтобы всегда в ответ шло слово "Тесту" - всё нормально. Но я не понимаю почему проблемы с генерацией, там везде кодировка проставлена юникодовская

(22 Фев 17:05) mctrane

а обработка ajax случайно не во внешнем js файле? может быть он в ansi?

(22 Фев 17:07) Yura Ivanov
показано 5 из 7 показать еще 2
Ваш ответ

Если вы не нашли ответ, задайте вопрос.

Здравствуйте

ХэшКод - это совместно редактируемый форум вопросов и ответов для начинающих и опытных программистов.

Присоединяйтесь!

отмечен:

×3,039
×1,169
×241
×112

задан
22 Фев 16:26

показан
115 раз

обновлен
22 Фев 20:05

Отслеживать вопрос

по почте:

Зарегистрировавшись, вы сможете подписаться на любые обновления

по RSS:

Ответы

Ответы и Комментарии