[CakePHP] Speciale characters icm Ajax call

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Tim Schuhmacher
  • Registratie: Januari 2000
  • Laatst online: 12-09 09:14
Ik ben aan het verdiepen in CakePHP en ben een kleine webapp aan het maken. Nu loop ik tegen een probleem met speciale characters, wat ook best niet aan Cake kan liggen.

In default.ctp heb ik het characterset gezet om bv "Benoît Delépine" & "Brüno" te ondersteunen.
code:
1
<?php echo $html->charset('ISO-8859-15'); ?>


Wanneer ik dan in index.ctp een link vorm dan moet '$escapeTitle' op 'false' staan:
code:
1
2
//$movie_title = "Brüno";
echo $html->link($movie_title, $movie['Movie']['imdb_url'], array('target'=>'_blank'), false, false);


Met Cake Bake heb ik de CRUD schermen gemaakt. Maar wanneer ik een item edit met daarin een speciaal character is het veld leeg. Daarvoor moet ook 'escape' op 'false' gezet worden:
code:
1
echo $form->input('title', array('escape' => false));

Ik vraag me eigenlijk af of dit wel juist is, telkens 'escape' op 'false'?

Maar goed tot nu toe werken speciale characters icm editten wel.

Ik roep (oa) het edit formulier in een popup ( http://okonet.ru/projects/modalbox/ ) die mbv Ajax (Prototype) de edit action aanroept. Dus ipv
code:
1
echo $html->link(__('Edit', true), array('action' => 'edit', $movie['Movie']['id']));

gebruik ik nu:
code:
1
<?php echo $html->link(__('Edit', true), array('action' => 'edit', $movie['Movie']['id']), array('title' => 'Edit movie', 'onclick' => 'Modalbox.show(this.href, {title: this.title, width: 600}); return false;'));

In het 1e geval is er niets aan de hand, in het 2e geval worden de speciale characters niet meer herkent, zie afbeeldingen.
Afbeeldingslocatie: http://img268.imageshack.us/img268/8118/clipboard02mp.th.jpg Afbeeldingslocatie: http://img46.imageshack.us/img46/363/clipboard03f.th.jpg

Nu lijkt het probleem zich geïntroduceerd te hebben met die javascript library, maar als ik de response van Firebug voor de Ajax call bekijk, staan daar wel de juiste characters, is de juiste tekenset aangegeven. En in Chrome gaat het wel goed, in Firefox en IE niet.

Ik weet niet waar het nu mis gaat, iemand een suggestie?

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 10:54

Janoz

Moderator Devschuur®

!litemod

Als ik een beetje google lijkt het er op dat ModalBox standaard uitgaat van UTF-8 encoding. Waarschijnlijk zul je de source van ModalBox in moeten duiken om te zien waar dat zit. Een andere optie is om zelf alles om te zetten naar UTF-8.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Tim Schuhmacher
  • Registratie: Januari 2000
  • Laatst online: 12-09 09:14
Dank, ik heb dat laatste maar gedaan. Het was wat meer werk dan verwacht om data om te zetten.

Acties:
  • 0 Henk 'm!

  • steffex
  • Registratie: Augustus 2003
  • Laatst online: 12-08 00:24
Tim Schuhmacher schreef op maandag 15 maart 2010 @ 22:47:
Dank, ik heb dat laatste maar gedaan. Het was wat meer werk dan verwacht om data om te zetten.
Het is ook de meest logische stap! Waarom zou je tegenwoordig nog webapps maken die geen utf-8 ondersteuning hebben? Wat is je reden om voor ISO-8859-15 te kiezen?

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 10:54

Janoz

Moderator Devschuur®

!litemod

Mwah, persoonlijk vind ik het kwalijker dat dei ModalBox implementatie
1. Nergens duidelijk gedocumenteerd heeft dat hij enkel met UTF-8 werkt
2. Die encoding niet configureerbaar is.

Je hebt niet altijd de mogelijkheid om zelf de encoding te bepalen. maar mocht je inderdaad wel die keuze hebben dan is UTF-8 inderdaad wel de meest voor de hand liggende keuze.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'