кодировки и функция iconv

Iven

Новичок
кодировки и функция iconv

сайт joomla в utf форум ipb в win1252
бд одна для всех в utf - если просматривать ее то сайт пишет читаемо а форум крякозябриками (в win 1252 похоже)
на форуме отображается все нормально
но на сайте есть меню пользователя и там приветствие с именем - имя отобржается не корректно

пытался делать так

$usser = $user->get('name');
echo $usser; echo "__1__";
echo iconv("windows-1252", "UTF-8", $usser); echo "__2__";
echo iconv("ASCII//TRANSLIT", "UTF-8", $usser); echo "__3__";

$q = 'EaieoioeaAinouIa?aaiiue';
$s = mb_detect_encoding($q);//Определяем кодировку
$q = iconv($s, 'UTF-8', $q);//Декодируем
echo $s;echo "__4__";

echo $q;echo "__5__";


$q = $user->get('name');
$s = mb_detect_encoding($q);//Определяем кодировку
$q = iconv($s, 'UTF-8', $q);//Декодируем
echo $s;echo "__6__";

echo $q;echo "__7__";

получаем


ÊàïèòîøêàÃîñòüÍåæäàííûé__1__Êà ïèòîøêà ÃîñòüÃ__2____3__ASCII__4__EaieoioeaAinouIa?aaiiue__5__UTF-8__6__ÊàïèòîøêàÃîñòüÍåæäàííûé__7__


3 вариант пустой - видно что-то не так с названием кодировки анси

а изначально вообще это слово КапитошкаГостьНежданный )


ну и заодно если получится разобратся с данной непонятной кодировкой было бы не плохо узнать как указывать в какой кодировке отправлять данные post-ом в исходящей форме
 

dimagolov

Новичок
Начни отсюда и разберись, в какой кодировке у тебя скрипты и какую кодировку отдает апач в заголовках.
 

Iven

Новичок
хм методом тыка таки добился нужного результата
кто бы мне еще его пояснил ...

$usr = $user->get('name');
$ussr = iconv("UTF-8", "windows-1252", $usr); - это нормально отображается если включить в браузере просмотр сайта в win1251
$usssr = iconv("windows-1251", "UTF-8", $ussr);
echo $usssr;

а в результате всей этой схемы начинает нормально показывать в utf )

ну и остался поднятый вопрос на счет post-a
как бы данную схему применитьть в обратном порядке для исходящей формы а не приемника
 

que_bunt

Новичок
$usr = $user->get('name');
$ussr = iconv("UTF-8", "windows-1252", $usr); - это нормально отображается если включить в браузере просмотр сайта в win1251
$usssr = iconv("windows-1251", "UTF-8", $ussr);
echo $usssr;

а в результате всей этой схемы начинает нормально показывать в utf )
что значит методом тыка? в мане же так и написано
iconv ( string $in_charset , string $out_charset , string $str )
Производит преобразование кодировки символов строки str из начальной кодировки in_charset в конечную out_charset

-~{}~ 04.05.09 15:11:

и забудь про windows-1252, прочитай еще раз то что dimagolov прописал, и используй windows-1251
 

fixxxer

К.О.
Партнер клуба
не, ну понятно что происходит :)

в форуме приходят данные в 1251, и пишется в базу с клиент-чарсетом и дб-чарсетом 1252. в итоге, помимо убитого case insensivity, пофиг, байтики и есть байтики.

в джумле стоит мыскль-клиент-чарсет утф8, мыскль честно все перекодирует из 1252 (то есть уже будучи в юникод пространстве интерпретируя как европейские загогулины) в утф8 =)
 
Сверху