
03.09.2004, 13:06
|
|
Регистрация: Aug 2001
Адрес: Житомир
Сообщений: 153
|
Старое решение
Была у меня, как-то, проблема с передачей кирилицы с флаш в пхп. Но это было еще в версии 5. Сейчас может решили проблему - я не знаю. Судя по описанию у тебя проблемы с кодировкой.
Я тогда использовал функции декодирования, чтобы передавать не кирилицу, а латиницу. В этом случае все проблемы отпадают сами собой, да и данные можно хранить в зашифрованом виде, а можно и в обычном.
Для пхп: с полученой латиницы делает кирилицу в кодировке charset=cp866
В нтмл следует прописать <meta http-equiv="Content-Type" content="text/html; charset=cp866">
Функция может пригодиться если переданую инфу нужно показывать на HTML страницах.
function cyrdecode($str){
$engstr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!?#$@%&<>+=";
$cyrstr="ЂЃ‚ѓ„…†‡?‰Љ‹ЊЌЋЏђ‘’“”•–—?™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬*®ЇабвгдежзийклмнопфхIiЈрсту";
$newstr="";
for($i=0; $i<strlen($str); $i++){
if($str[$i]==chr(9)){
codechar=$str[$i+1];$poscodechar=strpos($engstr,$codechar);$newstr=$newstr.$cyrstr[$poscodechar];$i++;
}else{
$newstr=$newstr.$str[$i];}
};
return $newstr;
};
Для флаш: 2 функции декодировки и кодировки
function cyrcode(str){
engstr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!?#$@%&<>+=";
cyrstr="АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяЇїІіґЁёЄє";
newstr="";
for(i=0; i<str.length; i++){
pos=cyrstr.indexOf(str.charAt(i));
if(pos<>-1){newstr+=chr(9)+engstr.charAt(pos);}else{newstr+=str.charAt(i);}
};
return newstr;
};
function cyrdecode(str){
engstr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!?#$@%&<>+=";
cyrstr="АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяЇїІіґЁёЄє";
newstr="";
for(i=0; i<str.length; i++){
if(str.charAt(i)==chr(9)){
codechar=str.charAt(i+1);poscodechar=engstr.indexOf(codechar);newstr+=cyrstr.charAt(poscodechar);i++;
}else{
newstr+=str.charAt(i);}
};
return newstr;
};
__________________
Алёшка
|