Форум 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)
-   -   flash + unicode (http://www.flasher.ru/forum/showthread.php?t=67395)

burvinkle 02.08.2005 00:43

flash + unicode
 
Помогите с загрузкой переменных в unicode из файла. В файле у меня набрано
var1=100&var2=новая (ТУТ ТЕКСТ НАПИСАН В UNICODE)

Но у unicode символы начинаются с & - что является разделителем переменной в текстовом файле.

должно быть чтото типа
var1=100
var2=новая

Но ведь символ & Является разделителем между переменными, и unicode не
считывается, потому , что он думает , что там просто следующие
переменные...
Что делать ...????

Причем, эти переменные нужно загрузить только из текстового файла.

Штрек 02.08.2005 00:57

Пиши спокойно -
var1=100&var2=новая
а затем весь файл сохраняй в Уникоде...

zapor 02.08.2005 01:11

может проще будет устроить замену & на допустим $, в текстовом файле, а при считывании переводить обратно?

burvinkle 02.08.2005 01:15

проблема в том , что переменные генерятся php скриптом , и выходит чтото типа

<?
echo "var1=100&";
echo "var2=&****&";
echo "var3=her";
?>

**** - это код unicode

И получается , что var2 определяется как undefined из-за того, что флеш думает, что после знака = идет название следующей переменной

burvinkle 02.08.2005 01:16

А как такое организовать, чтобы Flash еще и правильно схавал переменную

iNils 02.08.2005 01:42

Вместо & строке пиши %26
Пример:
q=123&w=%26456&e=789

burvinkle 02.08.2005 02:05

а вот и не хавает такое флеш :/

iNils 02.08.2005 12:32

ты ошибаешься. данная комбинация работает.

burvinkle 02.08.2005 12:49

покажи пример пжалста...
потому что я меня не работает...
флеш получает у себя -- не чистый уникод, а просто его символьное представление -- %26№226 он выводит потом в формее как 226 :/

iNils 02.08.2005 13:15

Вложений: 1
вот...

burvinkle 02.08.2005 14:41

Проблема в том, что флеш просто показывает символ &456, а он должен этот символ перевести в значение unicode символа.

iNils 02.08.2005 15:01

Тогда тебе надо Unecode символы в файле сохранять не с &, а с \u
Пример:
\u1234

burvinkle 02.08.2005 15:25

Я наверное уже достал.
Мой php скрипт уже генерирует такой ответ.
id1=36&name1=\u1085;\u1086;\u1074;\u1086;\u1089;\u1090;\u1080;&soob1=Y

но такой юникод -- не хочет распознаваться.

DeadMorozz 02.08.2005 16:28

А попробуйте перед кодом написать
Код:

System.useCodepage = false;
Мне помогало ;)

burvinkle 02.08.2005 16:41

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

iNils 02.08.2005 16:43

Не поможет... :(
Логика тут такая:
В файле есть переменная var1=\u0001, она грузится и значение переменной становится строкой. Это значит что ее вид будет не "\u0001", а "\\u0001". Вот она проблема, нам нужен символ, а у нас есть строка.

Попробуйте написать и запустить (в mx попытка запустить автоформатирование вешало программу, mx 2004 выжил, а все потому что mx пытается отобразить символ для этого кода, а 2004 нет. если напишите trace ("\u0167"), то после форматирования mx выдаст "t"):
Код:

trace ("\u0001");
trace ("\u" + "0001");

Результат различный.
В свое время мне надо было строку "\\nнекий текст\\nнекий текст\\nнекий текст" преобразовать в "\nнекий текст\nнекий текст\nнекий текст". Это удалось благодаря замене "\\n" на "\n". Тут же это не проходит.

iNils 02.08.2005 17:03

Вариант ... третий уже :)

В файле unicode пишем в виде:
Код:

q=0x0064,0x0186,0x1074,0x1086,0x1089,0x1090,0x1080
Во флеше обрабатываем его так:
Код:

r = q.split (",");
for (i = 0; i < r.length; i++) {
        a += String.fromCharCode (r[i]);
}
trace (a);


burvinkle 02.08.2005 17:17

Вложений: 1
Вот пример , на твое предложение, в trace выдает
undefined и квадраты.

iNils 02.08.2005 17:38

1. undefined потому что ты публикуешь под 7-ой флеш, а я под 6-ой. Поэтому тебе надо добавить вначале a="";
2. Квадраты потому, что вид 0xZZZZ предназначен для 16-ричной системы написания. Если ты используешь десятичную, то убери везде 0x, пиши просто ZZZZ.

burvinkle 02.08.2005 18:10

большое спасиба.
весьма признателен вам всем за помощь... этот топ обязательно нужно вписать в список факовых топиков.

iNils 02.08.2005 18:20

я надеюсь, что все же существует более короткое решение, а не через массив и цикл.


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

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