Yii Framework Forum: Kodowanie znaków - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Kodowanie znaków Rate Topic: -----

#1 User is offline   Headshaker 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 25
  • Joined: 21-January 11
  • Location:London

Posted 30 April 2011 - 09:41 AM

Witam.

Mam problem z kodowaniem znaków w niektórych elementach Yii, a dokładnie w Formularzach:

<?php echo $form->labelEx($model,'Hasło'); ?>


Ustawiony mam jezyk PL w aplikacji ale w miejscu gdzie powinno wyswietlic "Hasło" wyswietla "Has�o"

Czy wie ktoś może jak to rozwiązać ?

Dodam, że ogólnie polskie znaki widnieją na stronie poza własnie tym jednym :/
0

#2 User is offline   gawronzo 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 40
  • Joined: 10-November 09
  • Location:Poland/Lublin

Posted 01 May 2011 - 12:11 AM

Zakładam, że masz ustawione kodowanie w sekcji HEAD głównego layoutu:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


Prawdopodobnie w modelu lub widoku masz ustawione inne kodowanie pliku. U mnie dzieje się tak często gdy generuję kod przy pomocy gii. Wtedy domyślnie mam ANSI w widokach i krzaki polskich znaków (najgorzej jest w gdy pojawią sie polskie znaki w kontrolerach lub modelach z kodowaniem ANSI - wtedy z aplikacją potrafią się dziać cuda i człowiek traci czas na szukanie błędów których nie popełnił >:( ).

Polecam Ci najlepszy edytor na świecie - Programmer's Notepad - najlepiej w wersji portable. Otwierasz dokument, potem File > Encoding i ustawiasz "UTF-8 No Mark" i jest OK.

A tak przy okazji to wie ktoś jak zrobić by gii generowało kod w UTF zamiast ANSI? A może to tylko u mnie ten problem. Coś tam czytałem o tym na forum ale nie dokopałem się do przekonującego rozwiązania.
0

#3 User is offline   Headshaker 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 25
  • Joined: 21-January 11
  • Location:London

Posted 01 May 2011 - 03:18 PM

Tak.

Meta jest ustawiona.
Język w konfigu Yii też.
Views i modele są ustawione na kodowanie utf-8.

Zastanawiam się czy to nie wina jakiegoś moduły Yii wtym przypadku CActiveForms
$model=new LoginForm;

$form=$this->beginWidget('CActiveForm', array(
	'id'=>'logowanie',
	'enableAjaxValidation'=>true,
	'action' => 'login',
));?> 
<div style="float: left;">
<?php echo $form->error($model,'username'); ?>
<?php echo $form->error($model,'password'); ?>
</div>
<div id="login">
<?php echo $form->label($model,'Login',$htmlOptions=array(
	'value'=>$form->error($model,'username'),
));?></div>

<div id="logback1"><?php echo $form->textField($model,'username'); ?></div>
<div id="haslo"><?php echo $form->labelEx($model,'Hasło'); ?></div>
<div id="logback2"><?php echo $form->passwordField($model,'password'); ?></div>
<button type="submit"><img style="float: left;" src="<?php echo $gurl; ?>save.png">Zaloguj</button>

<?php $this->endWidget(); 

0

#4 User is offline   gawronzo 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 40
  • Joined: 10-November 09
  • Location:Poland/Lublin

Posted 02 May 2011 - 01:13 AM

A już widzę o co chodzi. W chwili obecnej yii próbuje pobrać wartość właściwości 'Hasło' modelu której nie ma.

To:
<div id="haslo"><?php echo $form->labelEx($model,'Hasło'); ?></div>


Zamień na:

<div id="haslo"><?php echo $form->labelEx($model,'password'); ?></div>

0

#5 User is offline   Headshaker 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 25
  • Joined: 21-January 11
  • Location:London

Posted 02 May 2011 - 09:00 AM

Quote

Zamień na:

<div id="haslo"><?php echo $form->labelEx($model,'password'); ?></div>


Ale w tym przypadku będzie mi się wyświetlało na stronie "Password", a ja potrzebuje żeby był napis "Hasło" :)
0

#6 User is offline   gawronzo 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 40
  • Joined: 10-November 09
  • Location:Poland/Lublin

Posted 02 May 2011 - 10:00 AM

Zatem zdefiniuj w modelu atrybut 'password' oraz jego etykietę.

	/**
	 * Declares attribute labels.
	 */
	public function attributeLabels()
	{
		return array(
			'rememberMe'=>'Remember me next time',
                        'login'=>'Login',
                        'password'=>'Hasło',
		);
	}

0

#7 User is offline   Reeno 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 16
  • Joined: 23-December 10

Posted 20 August 2011 - 05:10 AM

Znalazł ktoś jakieś sensowne rozwiązanie z tym kodowaniem? Też mam ustawione wszystko na UTF-8 włącznie z plikami widoków, modeli i kontrolerów i mam krzaczki. Nawet jak używam formularza i wysyłam sobie polskie znaki przez textarea to wyświetla krzaczki... już nie nie wiem o co chodzi kompletnie...
0

#8 User is offline   Reeno 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 16
  • Joined: 23-December 10

Posted 20 August 2011 - 05:15 AM

poprawka... działa już u mnie... ustawiłem sobie wcześniej htmlentities() na dane z textarea i zamieniał polskie znaki na enty dziwne, ale bez tego ładnie chodzi... no i pomogło przestawienie formatu plików na utf-8.

pozdr.
0

#9 User is offline   bobas 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 21-August 11

Posted 21 August 2011 - 10:38 AM

witam
rowniez mam podobny problem ;/ tyle ze usuwa mi linki na stronie gdy zamieszcze polski znak w linku (wersja demo link Home zmieniam na Strona główna) i wtedy mi znika lecz gdy zmienie Home na Strona glowna widac link na stronie. jak to zmienic? moglby ktos rowniez powiedziec jak zmienic jezyk komunikatow itp na polski?
0

#10 User is offline   Reeno 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 16
  • Joined: 23-December 10

Posted 21 August 2011 - 12:23 PM

Problem jest prawdopodobnie w kodowaniu plików. Gii generuje pliki kodowane w ANSI i tutaj aby użyć polskich czcionek musisz używać encji, ale wiadomo, że nie o to nam chodzi.... a ucina bo pewnie używasz htmlentities() lub podobnej funkcji? Aby usunąć problem, musisz przekonwertować wszystkie pliki widoków i najlepiej kontrolerów i modeli też. Możesz ściągnąć np. Notepad++ otworzyć w tym plik i wybrać "Formatuj->kodowanie", tylko bardzo ważna rzecz tutaj... nie formatuj an UTF-8 tylko na UTF-8 bez BOM. UTF-8 może stworzyć znaki binarne, które są niewidzialne dla wiekszości edytorów.

Pamietaj, że framework includuje serie plików zanim da wynik, więc najpierw pozamieniaj wszystkie layouty, widoki itd, pozniej sprawdzaj efekty...

Pozdr.
0

#11 User is offline   bobas 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 21-August 11

Posted 21 August 2011 - 12:54 PM

Zmienilem jezyk komunikatow na polski w pliku CAplication.php :P
Zauwazylem ze jak zostawie w charset ( public $charset=''; ) puste pole zamiast UTF-8 to pojawiaja mi sie linki z polskimi znakami tylko zamiast polskich znakow mam � i wszystkie polskie wyrazy w pliku main.php maja taki znaczek zamiast polskiego znaku ;/
0

#12 User is offline   Reeno 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 16
  • Joined: 23-December 10

Posted 21 August 2011 - 01:47 PM

Nie jestem mistrzem Yii, ale to chyba nie jest plik, w którzym należy grzebać cokolwiek :)
0

#13 User is offline   redguy 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 809
  • Joined: 02-July 10
  • Location:Central Poland

Posted 25 August 2011 - 08:33 AM

zeby komunikaty byly tlumaczone na jezyk polski, wystarczy zmienic jezyk w pliku konfiguracyjnym (np. main.php):

return array(
...
'language'=>'pl',
...
);


funkcja Yii::t() bazuje na tym parametrze domyslnie.

Mozna tez zmieniac język z kodu:
Yii::app()->language = 'pl';

red
0

#14 User is offline   wejder 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 22-November 11

Posted 13 December 2011 - 10:47 AM

I jak tam Panowie i Panie ?

Da się to jakoś prosto przestawić kodowanie na całą aplikację?
u mnie żadna z powyższych metod nie rozwiązuje problemu wyświetlania krzaczków w formularzach, Clistach i innych tego typu widgetach. :(
0

#15 User is offline   gawronzo 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 40
  • Joined: 10-November 09
  • Location:Poland/Lublin

Posted 13 December 2011 - 03:36 PM

View Postwejder, on 13 December 2011 - 10:47 AM, said:

I jak tam Panowie i Panie ?

Da się to jakoś prosto przestawić kodowanie na całą aplikację?
u mnie żadna z powyższych metod nie rozwiązuje problemu wyświetlania krzaczków w formularzach, Clistach i innych tego typu widgetach. :(


A jak wpiszesz polskie znaki w plik widoku to pojawiają się normalnie czy też krzaki? Jeśli pojawiają się normalnie a widgetach masz krzaki to może masz po prostu kodowanie tabel w bazie inne niż utf8 ? Ale to tylko jeśli widgety i formy korzystają z danych z bazy.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users