Форум 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)
-   -   Русский текст из xml, формата win1251, не отображает (http://www.flasher.ru/forum/showthread.php?t=93977)

Kikasso 04.04.2007 22:05

Цитата:

Сообщение от __etc
Kikasso, а где у тебя указан режим POST?

Цитата:

Usage
my_lv.sendAndLoad(url, targetObject[, method])
Он по умолчанию идет.

Ну можно и написать, худа не будет:

Код:

script.sendAndLoad("guest.php", script, "POST");
MINASTIS, все написал - подправил.

etc 04.04.2007 22:09

А, ну да. Но все-равно, для ясности, лучше указать.

Где у вас там GET, если вы все POST-ом шлете?

MINASTIS 04.04.2007 22:41

Получается не может Get изменять кодировку так как Post используется? Хм... Что же тогда изменяет кодировку?
Такое ощущение что проблема все таки во флеше. Так теоретически нигде не должна быть ошибка.

Kikasso 04.04.2007 22:49

Ну так сделайте ПРОСТОЙ файл с одним текстовым полем и одной кнопкой и ПРОСТОЙ файл на серваке для приема. И заодно HTML - форму.
Для приема данных из html-формы сгодится такой файл:
Код:

<?php
phpinfo();
?>


MINASTIS 04.04.2007 22:55

в смысле сделать заново гесту с одним текстовым полем?
Или для теста сделать форму с добавлением из одного текстового поля с помощью php файла(простого) в другой файл? Это для проверки поменяет ли он кодировку или зачем?

etc 04.04.2007 22:59

Слишком много вопросов.
Догадаться, что нужно сваять простенький пример (максимально упрощенный), чтобы убедиться, что сервер непричем, можно было и самому.

MINASTIS 04.04.2007 23:40

Кодировку файла изменил на ansi. Русский текст который был в файле предыдущий не коверкал и не изменял. Просто добавился новый русский текст, и изменилась кодировка. А во флеше если добавлять предыдущий русский текст видоизменяется до иероглифов.
То проверил или что то другое надо было? =)

etc 04.04.2007 23:42

MINASTIS, а своих мыслей у тебя вообще нет, что-ли?

MINASTIS 05.04.2007 00:14

Есть. Просто я не выспался =]
В общем получается сервер изменяет кодировку, а из флеша к тому же некорректно принимает русский текст и записывая в файл не только изменяет кодировку но и ломает русский текст который уже был в файле. Чего не наблюдается при добавлении через форму, где только кодировка изменяется. Вопрос: каким образом предотвратить смену кодировки сервером, и каким образом заставить через флеш скрипт работать с русским языком корректно?

Kikasso 05.04.2007 00:36

тестовые файлы покажи, я проверю на нормальном хостинге.
все в архив, html, fla, swf и php.

MINASTIS 05.04.2007 00:49

Я смогу завтра вечером все скинуть. Сейчас инета нет - через смарт сижу. Закину исходник сайта, его swf, все для гесты(файл с сообщениями и сам скрипт), и тестовую форму тоже.
Если есть Денвер было бы неплохо проверить. Кто знает может у меня с виндой/компом что-то не то. Поэтому на другом Денвере надо протестить будет ли та же проблема или нет. В общем завтра выложу архив.

Kikasso 05.04.2007 01:45

Нет, не сайта и не гестбука, ни в коем случае - только тестовые файлы. И смотри, чтоб все в 5 кб уложилось!:mad:

MINASTIS 05.04.2007 13:21

Вложений: 1
Вот архив. Весит меньше 5кб, гарантирую. =)

Kikasso 05.04.2007 15:06

А флешка где?

MINASTIS 05.04.2007 16:50

Вложений: 1
К сожалению в 5кб не уложился. Только в 7.:confused:

Кстати важная и более точная информация. Текст из флеша в скрипт приходит в ansi кодировке, хотя изначально файл с сообщениями состоит из текст utf-8 кодировки. Скрипт принимает текст ansi кодировки из флеша и подстраивает под него файл - перекодирует его. Но несмотря на это, даже если файл ansi кодировки становиться, сообщения (которые в ansi выглядят как "иероглифы") utf-8 русские исправно читаются во флеш. Но сообщения русские уже ansi кодировки флеш не воспринимает а иногда совсем не читает xml если там есть такие русские ansi буквы. Видимые решения проблемы: приходящий текст перкодировать в utf-8 и записывать его вфайл с сообщениями. Вопрос: функция iconv действительно может string перекодировать из ansi в utf-8?

Что-то не работает у меня iconv...
Код:

<?php
$filename = "guest/bookflash.dat";
$fd = fopen($filename, "r");
$prev = fread($fd, filesize($filename));
fclose($fd);
$allm = "<post>".$_GET['_message']."</post>";
$addall = "$allm$prev";
#$gonnatrim = $addall;
#$addall = trim($gonnatrim);
$addall = stripslashes($addall);
$addall = iconv("ANSI","UTF-8",$addall);
$fn = fopen($filename, "w");
fwrite($fn, $addall);
fclose($fn);
phpinfo();
?>

Там в описании написано что надо библиотеки специальные установить...
Я бы установил, но вопрос: каким образом их в инете устанавливать? На хостинге не будет ведь работать...
:O

iNils 05.04.2007 17:08

MINASTIS и Kikasso: Если ваше сообщение последнее в теме, то новый текст надо добавить к последнему, а не создавать новое.

Kikasso 05.04.2007 19:29

iNils, сорри исправлюсь. [off] IPB делает это автоматом, странно почему в VB это не предусмотрено. Ну это не обсуждается.. [/off]

MINASTIS, все у вас запутано. Все придется переделывать.
1) Данные надо посылать методом sendAndLoad. И разумеется POST. Вашим методом приходит мусор даже на локальном сервере.
2) В php есть великолепная команда echo для вывода данных. Где она у вас?
3) xml может иметь только один элемент верхнего уровня. Никого не волнует, как вы храните ваши данные, но выдавать их надо корректно. Или не надо делать вид, что это xml.

Так что домашнее задание: послать строку, записать ее в файл и отправить в ответ всю страницу, одним вызовом и одним объектом LoadVars. Разумеется POST.

Данные записывать построчно - одна запись, одна строка. XML потом.

MINASTIS 05.04.2007 21:08

Вложений: 1
Все сделал. Вроде все так. Кодировку меняет. Русский язык не воспринимает все так же =(.
Файл к сообщению приаттачил.

Kikasso 05.04.2007 23:09

1) в php у вас:
Код:

$allm = $_GET['_message']."\n";
Замените наконец на POST.
2) во флеше у вас:
Код:

avar.sendAndLoad("guestflash.php?_message="+pole.text, avar, "POST");
То что желтое, ничто иное как передача GET'ом.
После правки №1 у меня наконец сохранилось нормально, и локально и в сетке. И у вас заработает.

ANSI нет такой кодировки, есть Windows-1251, koi8-r, utf-8 и пр.

MINASTIS 05.04.2007 23:23

Спасибо большое! =)
Наконец заработало!


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

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