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

Artisan
На сайте с 04.03.2005
Offline
375
#11

http://www.w3.org/TR/html401/charset.html

Насколько я понимаю в одном документе можно только если например документ Windows-1251 а вставки UniCode сделаны numeric character references числовыми обозначениями знаков, но FRAME или IFRAME это уже другой документ и поэтому с ними можно делать все что угодно без зависимости от других документов но придется повозиться с настройками сервера.

5.3.1 Numeric character references

Numeric character references specify the code position of a character in the document character set. Numeric character references may take two forms:

* The syntax "&#D;", where D is a decimal number, refers to the ISO 10646 decimal character number D.
* The syntax "&#xH;" or "&#XH;", where H is a hexadecimal number, refers to the ISO 10646 hexadecimal character number H. Hexadecimal numbers in numeric character references are case-insensitive.

www.leak.info / ДАРОМ линки конкурентов и забытых доменов
MoMM
На сайте с 16.06.2006
Offline
727
#12


<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\">".$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=\"".$infOptions["ID"]."\" name=\"vote[".$inf["ID"]."]\" id=\"pollerOption".$infOptions["ID"]."\"><label for=\"pollerOption".$infOptions["ID"]."\" id=\"optionLabel".$infOptions["ID"]."\">".$infOptions["optionText"]."</label></p>"; // Вот тут нужны имена по русски
Zlo_606ep
На сайте с 14.12.2006
Offline
129
#13
MoMM:
как при чтении UTF из БД заставить запихивать в форму в 1251 или как заставить саму форму внутри себя показывать UTF-8?

нужно отыскать php файл, формирующий форму и отдающий её javascript-у (ajax), и просто где выводится текст переменные обработать функцией $text=iconv('UTF-8','Windows-1251',$text)

Zlo_606ep
На сайте с 14.12.2006
Offline
129
#14
MoMM:

<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>"; // Вот тут нужны имена по русски

вроде так, если iconv работает на сервере, то все должно быть ок

Artisan
На сайте с 04.03.2005
Offline
375
#15

Похоже что самое простое и надежное сделать UTF-8 всю страницу с формой, это можно сделать отдельно от остальных страниц сайта.

MoMM
На сайте с 16.06.2006
Offline
727
#16
Zlo_606ep:
вроде так, если iconv работает на сервере, то все должно быть ок

Fatal error: Call to undefined function iconv() in /usr/home/momm/data/www/copyright.provereno.info/leftmenu.php on line 13

13 echo "<p class=\"pollerTitle\">".iconv('UTF-8','Windows-1251',$inf["pollerTitle"])."</p>"; // Вот тут нужен заголовок по русски

Zlo_606ep
На сайте с 14.12.2006
Offline
129
#17
MoMM:
Fatal error: Call to undefined function iconv() in /usr/home/momm/data/www/copyright.provereno.info/leftmenu.php on line 13

13 echo "<p class=\"pollerTitle\">".iconv('UTF-8','Windows-1251',$inf["pollerTitle"])."</p>"; // Вот тут нужен заголовок по русски

так и знал (у нас тоже не работала, пришлось ковырять сеть)

function iconv($from,$to,$s) // при условии перекодировки из utf в win-1251

{

$t='';

for($i=0,$m=strlen($s);$i<$m;$i++)

{

$c=ord($s[$i]);

if ($c<=127){$t.=chr($c);continue;}

if ($c>=192 && $c<=207){$t.=chr(208).chr($c-48);continue;}

if ($c>=208 && $c<=239){$t.=chr(208).chr($c-48);continue;}

if ($c>=240 && $c<=255){$t.=chr(209).chr($c-112);continue;}

if ($c==184){$t.=chr(209).chr(209);continue;};

if ($c==168){$t.=chr(208).chr(129);continue;};

}

return $t;

}

MoMM
На сайте с 16.06.2006
Offline
727
#18
Zlo_606ep:
function iconv($from,$to,$s) // при условии перекодировки из utf в win-1251
{
$t='';
for($i=0,$m=strlen($s);$i<$m;$i++)
{
$c=ord($s[$i]);
if ($c<=127){$t.=chr($c);continue;}
if ($c>=192 && $c<=207){$t.=chr(208).chr($c-48);continue;}
if ($c>=208 && $c<=239){$t.=chr(208).chr($c-48);continue;}
if ($c>=240 && $c<=255){$t.=chr(209).chr($c-112);continue;}
if ($c==184){$t.=chr(209).chr(209);continue;};
if ($c==168){$t.=chr(208).chr(129);continue;};
}
return $t;
}

а можно для ламеров пояснить, куда это воткнуть? :)

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

MoMM,

Может просто быстренько конвертнуть сайтик в ЮТФ? :)

Дизайн интерьера (http://balabukha.com/)
MoMM
На сайте с 16.06.2006
Offline
727
#20
dkameleon:
MoMM,
Может просто быстренько конвертнуть сайтик в ЮТФ?

быстренько? хм... что-то я не уверен, что там незапутаюсь и геморра не окажется в 10 раз больше :)

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