Форум 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)
-   -   escape(x)!=unescape(x) (http://www.flasher.ru/forum/showthread.php?t=116152)

AlexCooper 22.09.2008 01:32

escape(x)!=unescape(x)
 
С помощью 'sendAndLoad' отправляю php escape-текст.
Php все данные размещает в виде xml файла и сохраняет уже неверный escape-текст.
К примеру:
Во флеше:
%C3%E4%E5%20%F2%F3%F2%20%E1%E0%E3%3F
а после передаче php в xml:
%D0%93%D0%B4%D0%B5%20%D1%82%D1%83%D1%82%20%D0%B1%D0%B0%D0%B3%3F
подскажите пожалуйста в чём проблема...

gloomyBrain 22.09.2008 01:53

А самое удивительное знаете что?
А я Вам сейчас покажу:
Код:

var s:String="%C3%E4%E5%20%F2%F3%F2%20%E1%E0%E3%3F"
var s2=unescape(s)
trace(s2)

Этот код во Flash CS3 выдаёт ����
(у меня в трейсе это выглядит как белые с чёрным контуром квадратки, а на форуме - как чёрные ромбики со знаком вопроса в середине)

Так вот. Если вместо переменной s поставить вторую приведённую Вами строку, то трудолюбивый трейс выдаёт вот что: Где тут б0°г?

Мне кажется, что
1) Вы перепутали строчки местами - тогда я не знаю чем Вам помочь
2) Что-то не то Вы отправляете

AlexCooper 22.09.2008 02:13

Вот xml
Код:

<?xml version="1.0" encoding="UTF-8"?>
<ID0 Name='www' Image='none' Color='none' ></ID0>
<ID2 text='%D0%A2%D0%B5%D0%BA%D1%81%D1%82%20' font='Times New Roman Cyr' size='14' align='left' thickness='2' alpha='100' rgb='0x000000' fill='0' moveY1='112' moveX1='171' startY='142' startX='68' Object='6' ></ID2>
<ID1 text='%D0%A2%D0%B5%D0%BA%D1%81%D1%82%20' font='Times New Roman Cyr' size='14' align='left' thickness='2' alpha='100' rgb='0x000000' fill='0' startY='121' startX='117' Object='6' ></ID1>

а вот его парсер на AS2
Код:

var index:XML= new XML();

var teg:XMLNode=new XMLNode();

System.useCodepage = true;

index.load('http://localhost/www.xml');

index.ignoreWhite=true;

function razbor_xml (xml)
{
       
        if (xml.status != 0)
        {
                trace ('XML документ содержит ошибку');
                return;
        }
        array = [];
        array = xml.childNodes;

        for (_root.i = 1; _root.i < array.length; _root.i++)
        {
                trace(unescape(index.childNodes[_root.i].attributes["text"]));
                //creat(index.childNodes[_root.i].attributes["Object"],array[_root.i].nodeName.substring(2,array[_root.i].length));
        }
}

index.onLoad = function ()
{
        razbor_xml (index);
};


AlexCooper 22.09.2008 02:17

трасировака показует
Текст
Текст

убираем
Код:

System.useCodepage = true;
и всё работает)))

gloomyBrain 22.09.2008 03:57

Здорово, что Вы самостоятельно нашли решение проблемы. Это говорит о Вас, как о человеке целеустремлённом, знающем чего он хочет

Тот вопрос, который Вы подняли в теме, и то решение которое Вы нашли слабо соотносятся друг с другом. Что говорит о неверности первого тезиса

не понятно причём тут php и сохранение не того, что было отправлено???
А по поводу useCodePage - проще и надёжнее сам файл index.xml сохранить в кодировке utf-8

AlexCooper 22.09.2008 06:33

да сначало было подумал что идёт "сбой" при передаче с swf в php. Но трасировка всему голова и всё таки нашёл где не происходит то чего хотелось бы)


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

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