Форум 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)
-   -   Win-1251 и unescape (http://www.flasher.ru/forum/showthread.php?t=136411)

point111 16.02.2010 17:56

Win-1251 и unescape
 
загружаю внешний XML, у него в заголовке encoding="Windows-1251", в AS2 прописано System.useCodepage = true;

для того, чтобы сделать перевод строки хочу использовать %0A, для этого делаю unescape текста, %0A работает, но текст меняет кодировку, если unescape не делать, то кодировка отображается верно.

если в XML поменять заголовок на encoding="UTF-8" и сохранить его в этой кодировке а System.useCodepage отключить, то unescape работает правильно - и кодировку не меняет и строку переносит.

Но мне надо, чтобы XML был в Win-1251 - его пользователь должен настраивать, а не все юзера в курсе что такое UTF-8

/n вставленный в текст почему-то не работает, наверное что-то надо включить, а что, не знаю...


Код AS1/AS2:

System.useCodepage = true;
 
 
_root.createTextField ("size_txt",1,10,10,300,120);
size_txt.wordWrap = true;
 
 
var text_from_xml:XML = new XML();
text_from_xml.ignoreWhite = true;
Load_txt_from_XML_fn("testcode.xml");
 
 
 
 
function Load_txt_from_XML_fn(content_xml) {
 
        text_from_xml.load(content_xml);// что загрузить
        text_from_xml.onLoad = loadData;//  запустить когда загрузится
 
        function loadData(success) {
                if (success == true) {
                        rootNode = text_from_xml.firstChild;//перый узел
                        size_txt.text = unescape(rootNode.childNodes[2].attributes.value);
                        //size_txt.text =rootNode.childNodes[2].attributes.value;
                        size_txt._height = 400;
                        trace (text_from_xml)
                } else {
                        trace("no text_from_xml");
                }
        }
 
}



Код:

<?xml version="1.0" encoding="Windows-1251"?>
<response command="settings">
        <status>
                <success/>
        </status>
        <setting id="head" value="TRI-LOGIC BLUE"/>
        <setting id="copy" value="Самый %0Aоригинальный %0A%0A%0Aпредставитель семейства WEST /nTRI-LOGIC/n/nМягкий гармоничный вкус BLUE достигается благодаря идеальному балансу смолы\никотина и сочетанию табаков высшего качества. Новый угольный фильтр позволит Вам почувствовать лучшее в направлении American Blend. Отвечающая современным тенденциям пачка BLUE выгодно отличает эти сигареты, подчеркивая Вашу индивидуальность!"/>
</response>


udaaff 16.02.2010 18:16

Цитата:

загружаю внешний XML, у него в заголовке encoding="Windows-1251", в AS2 прописано System.useCodepage = true;

для того, чтобы сделать перевод строки хочу использовать %0A, для этого делаю unescape текста, %0A работает, но текст меняет кодировку, если unescape не делать, то кодировка отображается верно.

если в XML поменять заголовок на encoding="UTF-8" и сохранить его в этой кодировке а System.useCodepage отключить, то unescape работает правильно - и кодировку не меняет и строку переносит.

Но мне надо, чтобы XML был в Win-1251 - его пользователь должен настраивать, а не все юзера в курсе что такое UTF-8
"Гениальное" решение. Вы так "заботитесь" о пользователях включая System.useCodepage, что те из них, у которых система использует не Windows-1251, вообще, вашим творением воспользоваться не смогут.

point111 16.02.2010 18:33

Это весьма небольшой процент, которым я могу пожертвовать. Вполне возможно, что XML будет всё таки в UTF 8, но на данном этапе 1251 мне необходим. В XML будут данные, которые заполняю не я, это будет "творчество" пользователей форума, я делаю только "движок", который эти данные визуализирует.


С переводом строки решил
http://www.flasher.ru/forum/showthread.php?p=878042

Но вопрос с перекодировкой остается открытым, всё равно когда нибудь возникнет необходимость воткнуть в win 1251 служебные символы.


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

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