manual rendering s encoding ISO-8859–2 zlobí

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Petr Tvaroha
Člen | 25
+
0
-

Zdravím,

mám takový problém. Když nastavím <?php $form->setEncoding(‚ISO-8859–2‘); ?> a dám pak <?php echo $form; ?>, tak se formulář vykreslí dobře i s default values ve správném kódování.

Když ale použiji <?php echo $form[‚pole‘]->control; ?>, tak se mi hodnota prvku zobrazí jako „rozsypaný čaj“.

Mohu to nějak ovlivnit? V současném stavu to pro mě znamená, že nemohu používat manuální rendering, neboť nechci měnit kódování stránky.

Předem díky za odpověď.

Nette 0.9.3 revision 2ce0ca6 released on 2010–02–02

Mikulas Dite
Člen | 756
+
0
-

Zkontroluj si kódování těch zdrojáků. Pokud neukládáš všechno jako utf-8, tak ti to může kolidovat s encodingem stránky.

Petr Tvaroha
Člen | 25
+
0
-

Takže vyřešit se to dá takto:

<?php

echo mb_convert_encoding($form['pole']->control, 'HTML-ENTITIES', 'UTF-8');

?>

Je to v podstatě to, co se provádí v metodě Form::render(), když chceme vykreslit celý formulář najednou.

Editoval Petr Tvaroha (16. 2. 2011 10:24)