Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Автоматический unescape (http://www.flasher.ru/forum/showthread.php?t=100065)

Cepreu4 19.08.2007 11:53

Автоматический unescape
 
Здравствуйте.
Проблема мелкая, но весьма неприятная.
Написал я генератор html страниц для каталога в небольшом интернет магазине. У каждого наименования есть кнопка "Заказать", которая отправляет скрипту данные методом GET. ну примерно так ../order.php?name=Lara%20Croft%32%20Tomb%20Raider&
При добавлении новых наименований через flash'форму всё добавляется как надо, и ВСЕ наименования (в т.ч. которые были добавлены раньше, в предыдущий сеанс) заново переписываются в общий html массив. А вот при чтении этого массива в следующем сеансе работы с каталогом flash автоматически unescap'ит шестнадцатиричные символы и при сохранении каталога записывает в общий массив адреса уже в обычном виде, т.е. ../order.php?name=Lara Croft: Tomb Raider& Что может явится проблемой при передачи данных, методом GET. Про символы кириллицы я уж вообще молчу. Можно ли как нибудь побороть автоматический unescape восьмого флэша??? (в 2004 mx'е я такого косяка не заметил)

etc 19.08.2007 17:39

Проблема существует или вы предполагаете её возможное наличие?

Cepreu4 19.08.2007 21:58

Проблема существует точно. с помощью трэйса я проверил, что массив содержащий шестнадцатиричные символы приходит во флэш декодированным. Вполне возможно что сие действие является результатом приминения комманды System.useCodepage = true; но парадокс в том, что БЕЗ этой команды флэш вообще отсылает скрипту вместо кириллицы непойми чего.

etc 19.08.2007 22:07

Эта строка виновата, но не в декодировании escape-а. Флеш работает с utf-8 (то самое «непойми чего»), но недобросовестный разработчик, посчитав, что в мире бывают только компьютеры с системой Windows, у которых по умолчанию в системе кириллическая кодировка, решил использовать эту строчку, дабы флеш принимал посылал данные скрипту в «правильной» кодировке. А должен был сделать перекодировку входящей utf-8 строки в win-1251 строку и последующим escape-ом.
А изначально надо было вообще отказаться от win-кодировки.

Cepreu4 20.08.2007 05:54

Так как проблему то решить? :)

etc 20.08.2007 09:56

Переделать. Отказаться от GET в пользу POST, убрать useCodepage и использовать тотально utf-8.
Головной боли точно будет меньше.

Cepreu4 20.08.2007 19:24

Так я UTF-8 и использую :) Флэш ведь только с ней и работает. Если убрать useCodepage, флэш (именно флэш) отсылает скрипту каракули вместо кириллицы
От GET'а я отказатся немогу, я же написал - генератор html страниц :)
Вообщем чувствую что придется после чтения переменный во флэш искать подстроку в каждом элементе отпарсеного массива с помощью for i , ескейпить её и переписывать весь массив... уффф

etc 20.08.2007 19:32

Цитата:

Сообщение от Cepreu4
Так я UTF-8 и использую :) Флэш ведь только с ней и работает. Если убрать useCodepage, флэш (именно флэш) отсылает скрипту каракули вместо кириллицы

Вы сами себе противоречите.

Cepreu4 20.08.2007 22:35

Каким образом? Помоему всё правильно :)

etc 20.08.2007 22:54

Неправильно. Использование useCodepage говорит о том, что вы пытаетесь использовать кодировку системы, а не utf-8.


Часовой пояс GMT +4, время: 18:55.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.