Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   SWFAddress и кириллица (http://www.flasher.ru/forum/showthread.php?t=120371)

s8000_1 18.01.2009 22:56

SWFAddress и кириллица
 
Конструкция типа:
Код AS3:

SWFAddress.setValue("/page/%u0442%u0435%u0441%u0442");

не хочет работать, никто не сталкивался с этой проблемой?
%u0442%u0435%u0441%u0442 - получено методом escape

Вопрос вдогонку: как сделать из кириллицы строку типа:
%D1%82%D0%B5%D1%81%D1%82 ?

etc 18.01.2009 23:16

unescape, я думаю. Но кириллические url сами по себе рассадник багов.

s8000_1 18.01.2009 23:22

В том-то и проблема, что я не хочу использовать кириллические url'ы, поэтому использую escape, чтобы убрать эту кириллицу. Но escape как-то не так конвертит, т. е. из строки "тест" получается это:
Код:

%u0442 е с т
, что не работает с SWFAddress
а броузеру надо это:
"%D1%82 %D0%B5% D1%81% D1%82"

Это одна и та же строка "тест". Поэтому я и спросил, есть ли способ из кириллицы получить 2й вариант средствами флэша.

p.s. форум тоже не хочет хавать escape-строку о_О (в первом посте нормально отобразилось, теперь при редактировании не сохраняется строчка)

BlooDHounD 18.01.2009 23:40

ну ваще этим занимается метод unescape. почему он не работает лично у вас, я не знаю.

s8000_1 18.01.2009 23:51

Еще раз.

1. unescape конвертит "% u 0 4 4 2" в "т"
escape конвертит "% u 0 4 4 2" в "т"

2. Символы вида "% u 0 4 4 2" не работают с SWFAddress.

3. Есть другой способ представления юникода в url'ах, который работает с SWFAddress: конвертировать "т" в "% D 1 % 8 2 ".

4. Вопрос состоит в том, как это сделать.

ААА... форум не позволяет мне то, что я хочу написать, оно все переконвертило. Понаставил лишних пробелов, чтобы показать, что я имею в виду.

DarkLight 19.01.2009 00:01

В as2 это работает как Вам требуется, это изменение в работу escape внесено в as3, так как такой тип считается более правильным. Соответственно, написать вручную или пускать сквозь as2-флешку

Цитата:

Analog methods to AS3 escape(str) are:

javascript: escape(str);
...

Analog methods to AS2 escape(str) are:

javascript: encodeURI(str);
Возможно, стоит SWFAdress попытаться доработать напильником в соответствии с этим

iNils 19.01.2009 00:11

Исходная строка "/page/тест"?

s8000_1 19.01.2009 00:21

DarkLight, спасибо за подсказку, очень помогло.

Все оказалось на самом деле гораздо проще: есть метод encodeURI в AS3 и decodeURL, работающий как в AS2 escape и js encodeURI(str)

дорабатывать напильником SWFAddress это очень долго и нудно.

iNils, исходная строка "/page/тест", ее надо превратить в URL. Если ее заэнкодить в
"page/%... %... %..." и использовать SWFAddress.setValue() браузер все равно отобразит "page/тест" (по крайней мере фф3 и ие7), однако при этом никаких багов не будет возникать.

Вот, кстати тут объяснено:
http://ru.wikipedia.org/wiki/URL#.D0...0.B8.D0.B5_URL

feodus 05.02.2010 21:13

простите вопрос в догонку...
а есть ли библиотечка для транслитерирования URL ?
Чтоб не "%D1%82 %D0%B5% D1%81% D1%82", а например "test" было...


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

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