Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Кодировка в запросах / 21 сообщений из 21, страница 1 из 1
06.11.2008, 10:47
    #35636755
NT Man
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
Проблемы с кодировкой не раз уже поднимались, но большинство ораторов хотело из кожи вон получить на клиенте Windows-1251. Хотя JavaScript абсолютно под это не заточен и всякие json_encode тому подтверждение, они просто не переваривают что либо отличное от UTF-8. У меня проблема другого плана и есть два варианта её решения, хочу с Вами посоветоваться как лучше, да заодно изобрести красивый рецепт :[

Задача в том, чтобы получать правильную кодировку на сервере или переводить её в правильную. Теперь подробнее о проблеме.
Итак, POST запрос можно создать двумя методами:
1) XMLHttpRequest - тут и на входе и на выходе UTF-8 однозначно (есть не согластные?)
2) <form action='********' method=POST> - а вот тут у меня пока идет Windows-1251
В зависимости от того как был сделан запрос сейчас сервер либо поймет, то что передал клиент, либо не поймет. Что ж надо это дело унифицировать.

Навскидку вижу два решения проблемы:
1) заставить <form action='********' method=POST> давать мне UTF-8
2) заставить сервер понимать в какой кодировке идет ответ, и выполнять на лету нужные преобразования.

Во-первых что лучше и быстрее???
Во вторых как это сделать? Пока не знаю ни одного решения, ни одного из предложенных вариантов. Жду Ваши предложения и возможные решения.

Заранее большое спасибо!

---
Чем больше я пишу на JavaScript, тем сильнее ненавижу IE!!!
...
Рейтинг: 0 / 0
06.11.2008, 11:13
    #35636859
Evgeniy_SH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
На сколько я помню ;) у меня не было особых проблем с кодировкой в ajax...

1) XMLHttpRequest - тут и на входе и на выходе UTF-8 однозначно (есть не согластные?)...

а чё разве ;) в php такой расклад не проходит?:)

header('Content-Type: text/html; charset: windows-1251');
$_GET['msg'] = iconv('UTF-8', 'windows-1251', $_GET['msg']);
...
Рейтинг: 0 / 0
06.11.2008, 12:23
    #35637188
NT Man
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
Наверно что-то я недопонял.

Требуется решение, чтобы со стороны клиента отрабатывали правильно оба вида запросов.

---
Чем больше я пишу на JavaScript, тем сильнее ненавижу IE!!!
...
Рейтинг: 0 / 0
06.11.2008, 12:25
    #35637199
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
Не проходит. AJAX при передаче использует по 2 байта на символ полюбому.

Однозначно надо юзать utf8 - чем плохо? - Надо уходить от локальных кодировок (да и зачем вообще использовать 1251?). А с учетом частого использования на сайте нескольких языков вариантов нет и вовсе.
...
Рейтинг: 0 / 0
06.11.2008, 12:31
    #35637222
NT Man
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
2IDVsbruck, полностью с тобой согласен.
Как заставить стандартный <form action='********' method=POST> отвечать в UTF-8?


---
Чем больше я пишу на JavaScript, тем сильнее ненавижу IE!!!
...
Рейтинг: 0 / 0
06.11.2008, 12:31
    #35637225
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
Указать в заголовке страницы.
...
Рейтинг: 0 / 0
06.11.2008, 12:40
    #35637249
Evgeniy_SH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
:) действительно что-то ты не допонял, зачем такое нужно?
разве ты не знаешь, из каких источников приходит какая кодировка? .... аааа... наверное rss, а китайский есть? :)

чтобы со стороны клиента отрабатывали правильно оба вида запросов. - это бред ;)...

допустим, ajax делает отсылает запрос в UTF-8, на сервере есть обработчик типа ($_GET['msg'] = iconv('UTF-8', 'windows-1251', $_GET['msg']);) который конвертирует UTF-8 в windows-1251... что-то там считает и отсылает запрос ;) в 1251, согласно header('Content-Type: text/html; charset: windows-1251');...

:)

ты писал: "Задача в том, чтобы получать правильную кодировку на сервере или переводить её в правильную." если уж сервер получил правильную кодировку, зачем её переводить ещё раз в правильную ;)... не понятно приложение, которое принимает разные виды кодировки...

типа один пользователь вводит текст в 1251 другой на utf-8 :)? - такое не бывает. ;) ну если бывает то если у тебя само приложение в 1251 :) сервер никак не победит в какой кодировке пришел к нему запрос, надо видимо сделать ;) комбобокс с возможностью выбора введенной кодировке... ;) ну как я уже сказал ;) типа один пользователь вводит текст в 1251 другой на utf-8 :)? - такое не бывает. причину смотри ;) где-то тут....

больше чем это,

header('Content-Type: text/html; charset: windows-1251');
$_GET['msg'] = iconv('UTF-8', 'windows-1251', $_GET['msg']);

тебе не надо ;) потому-что можно придумать ещё очень много возможных вариантов...

;) ну на худой конец, у тебя может быть максимум две кодировки, одна через хмлреквест утф-8, ;) что в принципе нас ничем не ограничивает, создадим ещё один параметр index.php?xml=true... :) то конвертим в то что нам надо ;) в php iconv'om, и если через форму ;) где xml не true, то та кодировка в которой приложение, и конвертим во что надо...

сорри за штурм ;)
...
Рейтинг: 0 / 0
06.11.2008, 13:44
    #35637479
NT Man
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
Я немножко недогоняю как так может быть тынц .
В заголовке utf-8 в тексте windows-1251 и что самое интересное ведь правильно во всех браузерах отображаеться.

---
Чем больше я пишу на JavaScript, тем сильнее ненавижу IE!!!
...
Рейтинг: 0 / 0
06.11.2008, 13:56
    #35637546
Evgeniy_SH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
скриншот немного не в тему, потому что показываешь response content... ты посмотри response header...
...
Рейтинг: 0 / 0
06.11.2008, 14:19
    #35637651
NT Man
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
В response header -> text/html; charset: UTF-8
так значит что у меня сейчас utf-8???
почему тогда когда в контенте ставлю вместо windows-1251 utf-8 вижу иероглифы?

---
Чем больше я пишу на JavaScript, тем сильнее ненавижу IE!!!
...
Рейтинг: 0 / 0
06.11.2008, 14:39
    #35637717
Evgeniy_SH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
не знаю что он там пишет, но какая кодировка в мета теге прописана та и будет... мб он просто твой сниффер(дебагер) версией не вышел, он же английский ;) и может не в курсе что есть русский ;) windows-1251

почему тогда когда в контенте ставлю вместо windows-1251 utf-8 вижу иероглифы?
- потому что в конфиге апаче на твою виртуальную директорию прописан дефолт windows-1251...

может харе уже из пальца высасывать?:)

:) тебе надо знать одно, какая кодировка твоего приложения, туже кодировку и надо принимать от входящих запросов ;)

кодировка прописывается метатегом, или каким-нибудь другим способом...
...
Рейтинг: 0 / 0
07.11.2008, 00:19
    #35638884
illion
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
Evgeniy_SH
почему тогда когда в контенте ставлю вместо windows-1251 utf-8 вижу иероглифы?
- потому что в конфиге апаче на твою виртуальную директорию прописан дефолт windows-1251...
либо сам контент сохранен в кодировке cp1251
...
Рейтинг: 0 / 0
07.11.2008, 08:59
    #35639102
Gostb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
Незнаю какая там кодировка, у меня скрипт примерно такой-же и еше и нету доступа к серверу...
Яваскрипт выводит всегда в юникоде. пытался ен\де кодировать все 3 варанта иероглвы, в чистов виде получаю "1/2, 1/4 и т.д" при енкодировании юникода получаю арабка-тарабарские символы, при декоде коресо-китайские, кодировка прописаная в хеде никакне влияет.
...
Рейтинг: 0 / 0
07.11.2008, 21:43
    #35641175
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
> В response header -> text/html; charset: UTF-8так значит что у меня
> сейчас utf-8???

Значит, что ответ (response) прибыл в utf-8. Не более. А уж как им далее распорядиться - дело хозяйское.

> почему тогда когда в контенте ставлю вместо
> windows-1251 utf-8 вижу иероглифы?

Не надо путать иероглифы (символы национальной письменности) к крякозябрами. Как Вы указали интерпретировать клиенту Ваши байты - так он и делает. Примеры тут: http://ru.wikipedia.org/wiki/%D0%9A%D1%80%D1%8F%D0%BA%D0%BE%D0%B7%D1%8F%D0%B1%D1%80%D1%8B
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
07.11.2008, 21:52
    #35641184
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
vkle,

Уже достали. В любой ветке, куда не глянь, имеется проблема - кракозябры, а самим разобраться - слабо. Однако же, если хотя бы один раз самостоятельно не разберутся - будут всё время спрашивать. И ведь, не ответишь! На каком языке-то отвечать?
...
Рейтинг: 0 / 0
07.11.2008, 22:11
    #35641221
NT Man
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
Ребята, все уже сделал как надо.
А сумятицу внесло, то, что почему-то думал, что DOMDocument->saveHTML() всегда возвращает UTF-8. А оказывается, он возвращает в той кодировке, в которой был сделан DOMDocument->loadHTMLFile , причем кодировку он брал из тега meta и пофигу что Вы там присвоите в DOMDocument->encoding . В итоге я не понимал как так, браузер получает все в UTF-8, а запросы делает в разных кодировках. Осталось понять, как на все это влияет header('Content-Type: text/html; charset: *****'); .

---
Чем больше я пишу на JavaScript, тем сильнее ненавижу IE!!!
...
Рейтинг: 0 / 0
07.11.2008, 22:31
    #35641255
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
NT Man,

Переходи таки на UTF-8. Щас так многие делают - проблем не будет.
...
Рейтинг: 0 / 0
07.11.2008, 22:34
    #35641256
NT Man
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
ShSergeПереходи таки на UTF-8. Щас так многие делают - проблем не будет.
Именно так и решил проблему ;)
...
Рейтинг: 0 / 0
07.11.2008, 22:59
    #35641287
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
Автор: ShSerge
> И ведь, не ответишь! На каком языке-то отвечать?

Гхм... Попробуй отвечать на олбанском с транслитом в латиницу. Вроде как латиница при перекодировках остается AS IS, а олбанский, возможно, более понятен нонешнему подрастающему поколению, нежели чтение мануалов.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
07.11.2008, 23:22
    #35641315
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
vkle,

+1. Так я ж на олбанском только со словарём... . Даже если и хочу чего-то написать - тьфу - на русский незаметно для себя перехожу (хе-хе).
...
Рейтинг: 0 / 0
08.11.2008, 09:23
    #35641523
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в запросах
ShSerge
самим разобраться

присовокупляйтесь
А то как-то жваво все почалось, а потом, видать, - порох в пороховницах закончилсо...

_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Кодировка в запросах / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]