Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   думаю ошибка в использовании iconv (http://www.flasher.ru/forum/showthread.php?t=86809)

writerer 23.10.2006 18:16

думаю ошибка в использовании iconv
 
Добрый День.
Вот в чём проблема:
данные в базе хранятся в win1251, для передачи их во флеш использую пхп ремотинг, и проблема в том, что при передачи результата запроса во флеш вместо русского текста отображаются квадраты, использую:
PHP код:

$result mysql_query($sql);
while (
$of=mysql_fetch_array($result)) {
    
$of['streetName'] = iconv('CP1251','UTF-8'$of['streetName']);
}    
return 
$result

в качестве запроса обычный селект.
Тот же иконв использую при поиске улиц, то есть при передаче пхп функции значения из текстовог поля во флеш, в пхп делаю:
PHP код:

$streetName iconv('UTF-8','CP1251',$in['streetName']); 

и всё нормально ищет, то есть перекодировка происходит нормально.
Помогите, где кривость в первом куске ?!

Skubent 23.10.2006 19:19

Из чего во что перекодируешь-то ?

writerer 24.10.2006 11:07

ну как ? в базе в 1251 и перекодю их в утф чтоб во флеше нормально русский видно было, но его ен видно .... usecodepage = true писал в обоих случаях, то есть если перекодить или нет.
в другом случае наоборот

etc 24.10.2006 11:10

Нужно убрать useCodepage.
Для начала проверьте, что на выходе из скрипта у вас utf-8 (в том числе и в HTTP заголовке), а уж потом со флешом разбирайтесь.

writerer 24.10.2006 14:21

useCodepage убирал ... всё тоже думаю вот это криво:
PHP код:

$result mysql_query($sql); 
while (
$of=mysql_fetch_array($result)) { 
    
$of['streetName'] = iconv('CP1251','UTF-8'$of['streetName']); 
}     
return 
$result

поправтье меня ... пожалуйста

etc 24.10.2006 14:23

выведи в браузер результат выполнения, посмотри, что в header-е и вообще, какая реально кодировка.

Можешь попробовать проставить header("Content-Type: text/plain;charset=utf-8") (или как там у тебя)…

Skubent 24.10.2006 14:32

А можно не пробовать, а увидеть, что
а) на выходе - ресурс, хотя что там дальше, я не в курсе;
б) массив of содержит только одну запись;
в) в массиве of streetName и соответствующий ему числовой индекс могут и не совпадать (хотя что там используется дальше в свете а) я не знаю);

writerer 24.10.2006 14:50

при кодировке страницы utf8 те же квадраты nxj и во флеше.
перефорулирую вопрос:
как перекодировать результат запроса ??

Skubent 24.10.2006 14:52

Перекодировать-то иконвом. Вот только сначала внимательно прочитать и осознать, что я написал.

writerer 13.11.2006 18:42

я опять к этой проблеме!
на пхп я делаю вот так
PHP код:

$stn = array();
while (
$of=mysql_fetch_array($resultt)) {
    
$sn iconv('CP1251','UTF-8'$of['streetName']);
    
    
$stn['$i']['streetName'] = $sn;
    
$result[] = $stn;
    
$i $i 1;
}
return 
$result

проблема в том что я не могу ничего, кроме как узнать размер сделать теперь во флеше с этим результатом.
Я использую flash remoting, и ранее, и когда возвращал во флеш сразу ответ работы запроса, то строка
dbMess.dataProvider = RecordSet(re.result);
всё отображала, теперь нет, не могу получить доступ в пришедшему объекту.


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

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