Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.02.2010, 17:56
point111 вне форума Посмотреть профиль Отправить личное сообщение для point111 Найти все сообщения от point111
  № 1  
Ответить с цитированием
point111
[+1 15.06.10]
 
Аватар для point111

Регистрация: Feb 2009
Сообщений: 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>

Старый 16.02.2010, 18:16
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
загружаю внешний 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, вообще, вашим творением воспользоваться не смогут.

Старый 16.02.2010, 18:33
point111 вне форума Посмотреть профиль Отправить личное сообщение для point111 Найти все сообщения от point111
  № 3  
Ответить с цитированием
point111
[+1 15.06.10]
 
Аватар для point111

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


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

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


Последний раз редактировалось point111; 17.02.2010 в 14:50.
Создать новую тему Ответ Часовой пояс GMT +4, время: 06:50.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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