Две кодировки на одной странице. Как?

1 234 5
Zlo_606ep
На сайте с 14.12.2006
Offline
129
#21

функцию - вставить где-нибудь вначале, можно в <?...?> перед <form> в исходнике

dkameleon
На сайте с 09.12.2005
Offline
386
#22
MoMM:
быстренько? хм... что-то я не уверен, что там незапутаюсь и геморра не окажется в 10 раз больше :)

Там всё статика или из базы что-то тащится?

Если статика, то скидывайте на почту. за пару минут конвертну.

Дизайн интерьера (http://balabukha.com/)
MoMM
На сайте с 16.06.2006
Offline
727
#23
Zlo_606ep:
функцию - вставить где-нибудь вначале, можно в <?...?> перед <form> в исходнике

не сработало :(

Shtogrin
На сайте с 02.11.2006
Offline
95
#24
MoMM:
не сработало :(

Не удивительно, ведь приведенная функция предназначена для конвертирования cp1251 в utf-8. А вам надо наоборот.

<?php
function iconv ($f,$t,$s)
{
$out="";
$c1="";
$byte2=false;
for ($c=0;$c<strlen($s);$c++)
{
$i=ord($s[$c]);
if ($i<=127)
$out.=$s[$c];
if ($byte2)
{
$new_c2=($c1&3)*64+($i&63);
$new_c1=($c1>>2)&5;
$new_i=$new_c1*256+$new_c2;
if ($new_i==1025)
{
$out_i=168;
}
else
{
if ($new_i==1105)
{
$out_i=184;
}
else
{
$out_i=$new_i-848;
}
}
$out.=chr($out_i);
$byte2=false;
}
if (($i>>5)==6)
{
$c1=$i;
$byte2=true;
}
}
return $out;
}
?>

Код жутковатый, только-что нашел. Проверил. Должно работать

www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).
MoMM
На сайте с 16.06.2006
Offline
727
#25
Shtogrin:
Код жутковатый, только-что нашел. Проверил. Должно работать


<?php
function iconv ($f,$t,$s)
{
$out="";
$c1="";
$byte2=false;
for ($c=0;$c<strlen($s);$c++)
{
$i=ord($s[$c]);
if ($i<=127)
$out.=$s[$c];
if ($byte2)
{
$new_c2=($c1&3)*64+($i&63);
$new_c1=($c1>>2)&5;
$new_i=$new_c1*256+$new_c2;
if ($new_i==1025)
{
$out_i=168;
}
else
{
if ($new_i==1105)
{
$out_i=184;
}
else
{
$out_i=$new_i-848;
}
}
$out.=chr($out_i);
$byte2=false;
}
if (($i>>5)==6)
{
$c1=$i;
$byte2=true;
}
}
return $out;
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" onsubmit="return false" method="post">
<?php $pollerId = 4; ?>



<!-- START OF POLLER -->
<div class="poller">
<div class="poller_question" id="poller_question<?php echo $pollerId; ?>">
<?php
// Retreving poll from database
$res = mysql_query("select * from poller where ID='$pollerId'");
if($inf = mysql_fetch_array($res)){
echo "<p class=\"pollerTitle\">".iconv('UTF-8','Windows-1251',$inf["pollerTitle"])."</p>"; // Вот тут нужен заголовок по русски

$resOptions = mysql_query("select * from poller_option where pollerID='$pollerId' order by pollerOrder") or die(mysql_error()); // Find poll options, i.e. radio buttons
while($infOptions = mysql_fetch_array($resOptions)){
if($infOptions["defaultChecked"])$checked=" checked"; else $checked = "";
echo "<p class=\"pollerOption\"><input$checked type=\"radio\" value=\"".iconv('UTF-8','Windows-1251',$infOptions["ID"])."\" name=\"vote[".$inf["ID"]."]\" id=\"pollerOption".$infOptions["ID"]."\"><label for=\"pollerOption".$infOptions["ID"]."\" id=\"optionLabel".$infOptions["ID"]."\">".iconv('UTF-8','Windows-1251',$infOptions["optionText"])."</label></p>"; // Вот тут нужны имена по русски

}
}
?>

и не работает вообще вывода на экран нет.

Shtogrin
На сайте с 02.11.2006
Offline
95
#26

Поставьте отладочку,

if($inf = mysql_fetch_array($res)){

echo "TEST[{$inf["pollerTitle"]}]";

echo "<p class=\"pollerTitle\">".iconv('UTF-8','Windows-1251',$inf["pollerTitle"])."</p>";

Если в базе есть это значение ID=4, мы хоть <p class="pollerTitle"> должны были увидеть

MoMM
На сайте с 16.06.2006
Offline
727
#27
Shtogrin:
Поставьте отладочку,

поставил. результат тот же

Shtogrin
На сайте с 02.11.2006
Offline
95
#28

А есть в базе ID=4? Может другой номер?

Shtogrin
На сайте с 02.11.2006
Offline
95
#29

В дальнейшем iconv лучше переименовать, например, на iconv1. Вдруг когда-то на хостинге появится родной.

dkameleon
На сайте с 09.12.2005
Offline
386
#30

Когда устанете играться - хоть ответьте на моё сообщение :)

Или сейчас попробую накропать код. Естественно, вслепую даже не имею ни малейшего представления, сработает ли.

1 234 5

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий