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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.04.2007, 07:51
MINASTIS вне форума Посмотреть профиль Отправить личное сообщение для MINASTIS Посетить домашнюю страницу MINASTIS Найти все сообщения от MINASTIS
  № 1  
Ответить с цитированием
MINASTIS
 
Аватар для MINASTIS

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
Flame Русский текст из xml, формата win1251, не отображает

Приветстсвую. Я много в поиске читал, и в Чаво посмотрел.. Кроме System.useCodePage ничего путного не нашел... Или просто темы двухгодичной давности так и не решенные нормально (наверно участники в привате дальше говорили =] )
У меня есть на сервере файл xml, он для гостевой. Его формат win1251, в него php записываются данные, русский текст, но когда ролик грузит этот xml файл в себя, то вместо русского текста там типичные квадратики... А если весь xml файл из русского текста (ну теги конечно латиницей написаны) то он вобще не отображается в ролике. Вопрос:
Каким образом заставить Flash читать русский текст из xml файла, не используя System.useCodePage, и не переделывая файл в Юникод кодировку?

Старый 02.04.2007, 08:03
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 2  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Публикуя под 5-й плеер.))
А что мешает конвертнуть на сервере? Волшебное слово iconv ( функция php)
Не хотите конвертить, useCodePage.
Цитата:
iconv
(PHP 4 >= 4.0.5, PHP 5)
iconv -- Преобразовывает символы строки в другую кодировку
Описание
string iconv ( string in_charset, string out_charset, string str )
Производит преобразование кодировки символов строки str из начальной кодировки in_charset в конечную out_charset. Возвращает строку в новой кодировке, или FALSE в случае ошибки.
Если добавить //TRANSLIT к параметру out_charset будет включена транслитеризация. Это означает, что вслучае, когда символа нет в конечной кодировке, он заменяется одним или несколькими аналогами. Если добавить //IGNORE, то символы, которых нет в конечной кодировке, будут опущены. Иначе, будет возвращена строка str, обрезанная до первого недопустимого символа.
Код:
<?php
echo iconv("Windows-1251", "UTF-8", "Пора переходить на юникод.");
?>


Последний раз редактировалось Kikasso; 02.04.2007 в 08:21.
Старый 02.04.2007, 12:53
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
У меня вопрос: зачем вообще что-то делать с кодировкой? Зачем её мурыжить и создавать себе проблемы? Почему формат xml именно win, а не utf?
Ответ на вопрос в первом посте: с помощью AS3.

Старый 02.04.2007, 14:52
MINASTIS вне форума Посмотреть профиль Отправить личное сообщение для MINASTIS Посетить домашнюю страницу MINASTIS Найти все сообщения от MINASTIS
  № 4  
Ответить с цитированием
MINASTIS
 
Аватар для MINASTIS

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
__etc формат такой, как я ранее говорил, потому что "даже если поставить utf, php скрипт кодировку файла изменяет самолично на win, когда используешь параметр 'w' открытия файла", поэтому я ищу выход, как же считать из кодировки win, потому как сохранить эту кодировку utf файла невозможно (из-за интересного php скрипта который самолично кодировку изменяет =( ).

Каким образом с помощью AS3? Есть ли где-нибудь статейка на эту тему?

Старый 02.04.2007, 14:55
CorC вне форума Посмотреть профиль Отправить личное сообщение для CorC Найти все сообщения от CorC
  № 5  
Ответить с цитированием
CorC
 
Аватар для CorC

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
я все время считываю и из текстовиков и из MySQL
где и там и там стоит utf-8
но ни разу еще php мне менял кодировку
если что то iconv поможет
__________________
"We Are The Champions My Friends!" Queen

Старый 02.04.2007, 15:14
MINASTIS вне форума Посмотреть профиль Отправить личное сообщение для MINASTIS Посетить домашнюю страницу MINASTIS Найти все сообщения от MINASTIS
  № 6  
Ответить с цитированием
MINASTIS
 
Аватар для MINASTIS

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
Вот у меня просто волшебный php скрипт! Я только что файл сохранил в Юникоде, запустилд скрипт добавления через гесту, написал по русски. Мало того, что у меня геста не получает подтверждение загрузки LoadVars-a (так и остается на одном фрейме, хотя аглицкими буквами когда пишу все ок), так она отказывается загружать русский текст из файла. Странно, сказал я себе. Вроде кодировка Юникод... Смотрю, а файл уже кодировки win! Как так получилось не понимаю! Волшебный скрипт млин. Вот посмотрите его код, может найдете чего он мне файл кодировку меняет:
Код:
<?php
$filename = "guest/book.dat";
$fd = fopen($filename, "r");
$prev = fread($fd, filesize($filename));
fclose($fd);
$allm = "<post date='".$_GET['_date']."' name='".$_GET['_nick']."' page='".$_GET['_page']."' mail='".$_GET['_mail']."'>".$_GET['_message']."</post>";
$addall = $allm.$prev;
$fd = fopen($filename, "w");
fwrite($fd, $addall);
fclose($fd);
?>
Вот код вызова скрипта через LoadVars во флеше:
Код:
stop();
var script:LoadVars = new LoadVars();
trace(_page+"_"+_mail);
//if (_page==undefined) _page="-";
script.load("guest.php?_nick="+_nick+"&_date="+_date+"&_mail="+_mail+"&_page="+_page+"&_message="+_message);
script.onLoad = function (ok:Boolean):Void {
	if (ok) {
		play();
	}
}
Вроде все правильно. Но в чем тогда ошибка? Что php творит с кодировкой и почему флеш не читает файл?

Старый 02.04.2007, 15:15
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от MINASTIS
"даже если поставить utf, php скрипт кодировку файла изменяет самолично на win, когда используешь параметр 'w' открытия файла"
Сказки. php ничего не преобразовывает при записи.
Ищи ошибку внутри флеша, где-нибудь, да useCodepage включен.

Старый 02.04.2007, 15:23
MINASTIS вне форума Посмотреть профиль Отправить личное сообщение для MINASTIS Посетить домашнюю страницу MINASTIS Найти все сообщения от MINASTIS
  № 8  
Ответить с цитированием
MINASTIS
 
Аватар для MINASTIS

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
__etc я даже самолично написал System.useCodepage = false вначале.
Ничего не дает =(
Вот полюбуйтесь. До применения скрипта файл выглядел так (с кодировкой Юникод):
Цитата:
<post date='2.31.2007' name='Минастис' page='-' mail='-'>Кагдила медведы?</post>
После добавления такой же информации он стал выглядеть так:
Цитата:
<post date='2.31.2007' name='Минастис' page='-' mail='-'>Кагдила медведы2 ?</post>яю< - а дальше идут многочисленные "иероглифы"
Что это такое? Как так он взял да изменил символы прошлые? Просто разломал предыдущее сообщение, добавил новое, и превратил все это в другую кодировку =((
Что же делать?

Вобще интереснее всего, что php в "глокую куздру" превращает текст предыдущих сообщений только если писать русским... Может все-таки проблема с этим кодом... Который для русского текста в input?
Код:
fixWMode = function(str) {
     var index = Selection.getCaretIndex();
     var broken = str.split(chr(4));
     for (var i = 1; i<broken.length; i++) {
          broken[i] = String.fromCharCode(1024+broken[i].charCodeAt(0))+broken[i].substr(1);
     }
     var out = broken.join("");
     if (index<out.length-1&&str.length!=out.length) {
          Selection.setSelection(index-1,index-1);
     }
     return out;
}
nick.onChanged = function() {
     this.text = fixWMode(this.text);
};
messag.onChanged = function() {
     this.text = fixWMode(this.text);
};
Ведь именно после с измененных полей идут значения в php файл...


Последний раз редактировалось iNils; 02.04.2007 в 18:52.
Старый 02.04.2007, 16:10
CorC вне форума Посмотреть профиль Отправить личное сообщение для CorC Найти все сообщения от CorC
  № 9  
Ответить с цитированием
CorC
 
Аватар для CorC

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
а в 5 строке что за хитрая вещь?
может она все ломает?
__________________
"We Are The Champions My Friends!" Queen

Старый 02.04.2007, 16:11
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
В самом скрипте в принципе все нормально.
Проблема может быть в хостинге и настройках php.

Отключи transparent и проверь без фикса.

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:00.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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