JavaScript und Umlaute

Hallo zusammen,

ich habe mal wieder den deutschen Thread aufgesucht, da ich mir gedacht habe, dass bestimmt schon andere hier dieses Problem hatten  ;)

Und zwar folgendes:

ich möchte eine Confirm-Nachricht mit Umlauten versehen. Klar, aus so was wie

      <?php echo CHtml::linkButton(‘Delete’,array(

        'submit'=>'',

        'params'=>array('command'=>'delete','id'=>$model->ID),

        'confirm'=>"Are you sure to delete #{$model->ID}?")); ?>

wird ja bei uns meist was mit ‘löschen’.

Normalerweise würde ich dafür escape/unescape mit ASCII-Werten benutzen oder was mir noch lieber wäre, wäre Unicode ála

u00F6

Ersteres funktioniert nicht, weil der String in Anführungszeichen eingeschlossen wird (ist ja klar). Bei der Unicode-Variante macht mir die CJavaScript::quote Funktion einen Strich durch die Rechnung, die auf das confirm-Element angewandt wird.

Wie kann ich das möglichst einfach und ohne im Framework-Code rumzubasteln lösen??

Vielen Dank schonmal  :)

yoshi

Hmm, wieso so kompliziert? Wenn du alles sauber auf UTF-8 hältst, brauchst du gar nix codieren, sondern schreibst einfach "löschen".

Evtl. hilft auch dieser Artikel, um nochmal alles durchzuchecken:

http://www.yiiframew…oc/cookbook/16/

Hi,

danke. Nun, vom Prinzip her habe ich damit auch kein ernsthaftes Problem, da ich alles in UTF8 habe und es auch korrekt angezeigt wird, wenn ich die Umlaute direkt in den View schreibe.

Allerdings war ich etwas verwundert, dass es nicht die Möglichkeit gibt z.B. in einer Confirm-Benachrichtigung Unicode Zeichencodes zu verwenden…

Habs grad nochmal getestet: Auch das klappt bei mir ohne Probleme. Heißt das, das hier geht bei dir nicht?

<?php echo CHtml::linkButton('Delete',array(


           'submit'=>'',


           'params'=>array('command'=>'delete','id'=>$model->ID),


           'confirm'=>"Wirklich löschen")); ?>


Hi,

doch das klappt bei mir auch. Dazu muss die Kodierung natürlich stimmen.

Allerdings bin ich es gewohnt für solche Zeichen die entsprechenden Codes anzugeben (wie man es bei einer normalen HTML-Seite ja eigentlich auch immer macht / machen sollte).

Das hier funktioniert nicht:

<?php echo CHtml::linkButton('Delete',array(


           'submit'=>'',


           'params'=>array('command'=>'delete','id'=>$model->ID),


           'confirm'=>"Wirklich lu00F6schen")); ?>

Es würde den String durch das quoting genau so in der Confirm-Nachricht anzeigen.

Also mein Verständnis von Unicode ist, dass man eben genau diese ganzen Codierungen nicht mehr machen muss. Das ist ja irgendwo Sinn der Übung.  Javascript arbeitet intern auch auf Unicode-basis, versteht also alle Zeichen ohne Codierung.

All die Jahre wo ich jetzt Unicode im Web verwende, hatte ich nie wieder Probleme. Kann dir also ruhigen Gewissens empfehlen: Schreib einfach so, “wie mans spricht” ;) und es wird funktionieren.

Genau das werde ich jetzt auch einfach machen!  ;D

Danke und Gruß,

yoshi