Yii Framework Forum: Sonderzeichen in Formaularen und Buttons - Yii Framework Forum

Jump to content

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

Sonderzeichen in Formaularen und Buttons Rate Topic: -----

#1 User is offline   Lollinger.de 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 79
  • Joined: 19-May 09
  • Location:Ulm, Germany

Posted 21 June 2009 - 02:45 AM

Jetzt kommt mal wieder ne richtig doofe Frage, aber wie kann ich erreichen das auf einem Button Ändern steht? Mit encode gehts nicht, mit Yii::t() auch nicht, und wenn wenn ich ein Ä eingebe dann zeigt es gar nichts mehr an. Gibt es eine Möglichkeit? Hab das Problem auch in DropDownLists und an verschiedenen anderen Stellen.

Grüße

Martin
0

#2 User is offline   Mike 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 3,016
  • Joined: 06-October 08
  • Location:Upper Palatinate

Posted 21 June 2009 - 04:58 AM

Hast du deine Datei UTF-8 codiert gespeichert? Falls ja, zeig mal ein bisschen Beispielcode, was du genau machen möchtest.
0

#3 User is offline   Lollinger.de 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 79
  • Joined: 19-May 09
  • Location:Ulm, Germany

Posted 21 June 2009 - 06:04 AM

Zum Beispiel sowas:
<?php echo CHtml::dropDownList('suche', $_REQUEST['suche'], array(
'1'=>Yii::t('Durchfuehrung', 'Alle Termine'),
        '2'=>Yii::t('Durchfuehrung', 'Termine mit möglicher Anmeldung'),
'3'=>Yii::t('Durchfuehrung', 'Termine in Vorbereitung'),
'4'=>Yii::t('Durchfuehrung', 'Abgelaufene Termine'),
));
?>

Wenn ich hier das ö (rot) so reinschreibe dann ist das Feld leer. Wenn ich es als &ouml; schriebe wird es als &ouml; angezeigt. Wie kann ich erreichen das das ö angezeigt wird?

0

#4 User is offline   Y!! 

  • Advanced Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 978
  • Joined: 18-June 09

Posted 21 June 2009 - 06:45 AM

Wie Mike sagt, deine PHP-Dateien müssen UTF-8 kodiert vorliegen dann sollte es klappen. Wenn das bereits der Fall ist, dann schaue mal nach (mit z.B. Firebug) ob dieser http-header gesetzt ist:

Content-Type: text/html; charset=utf-8


Sollte das nicht der Fall sein, dann findest du hier eine Möglichkeit diesen per htaccess zu setzen. Um nicht von irgendwelche Webserver-Konfigurationen abhängig zu sein, kannst du es auch so machen:


<?php

class SiteController extends CController
{

public function init()
{

header('Content-Type: text/html; charset=utf-8');

}

}

?>


Deine einzelnen Controller leitest du dann einfach von dieser Klasse ab und der header wird immer automatisch gesetzt.
0

#5 User is offline   Lollinger.de 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 79
  • Joined: 19-May 09
  • Location:Ulm, Germany

Posted 21 June 2009 - 10:31 AM

Geht leider beides nicht, verwende ich ein öäüß bleibt die zeile im drop down feld leider leer
0

#6 User is offline   mbi 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 604
  • Joined: 08-May 09

Posted 21 June 2009 - 12:15 PM

wahrscheinlich läuft da was schief bei Yii::t()
funktioniert es denn ohne Message Translation?
0

#7 User is offline   Lollinger.de 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 79
  • Joined: 19-May 09
  • Location:Ulm, Germany

Posted 22 June 2009 - 01:18 AM

Glaub nicht mit,
<?php echo CHtml::dropDownList('suche', $_REQUEST['suche'], array(
'1'=>Yii::t('Durchfuehrung', 'Alle Termine'),
        '2'=>'Termine mit möglicher Anmeldung',
'3'=>Yii::t('Durchfuehrung', 'Termine in Vorbereitung'),
'4'=>Yii::t('Durchfuehrung', 'Abgelaufene Termine'),
));
?>


so bleibt die Zeile leider auch leer

das im Header hab ich gesetzt:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="de" />
<link rel="stylesheet" type="text/css" href="/esft/css/main.css" />
<link rel="stylesheet" type="text/css" href="/esft/css/form.css" />
<link rel="shortcut icon" href="favicon.png" type="image/png">
<link rel="icon" href="favicon.png" type="image/png">
<title>eSFT - Admin Durchfuehrung</title>
</head>


geht aber leider auch nicht. Hatte von euch noch nie jemand Probleme damit?
0

#8 User is offline   Mike 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 3,016
  • Joined: 06-October 08
  • Location:Upper Palatinate

Posted 22 June 2009 - 01:28 AM

In diesem Fall gibt können es nur zwei Sachen sein, warum es nicht klappt:

1. Deine Datei ist nicht UTF-8 codiert gespeichert
Besorg dir nen Texteditor, der die aktuelle Dateicodierung anzeigt und ändern kann. Unter Windows mach ich das z.B. mit Notepad2.

2. Der HTTP-Header wird nicht richtig gesetzt.
Im Firefox kannst du unter Ansicht/Kodierung schnell prüfen welche Codierung vom Browser erkannt wurde. Genauer kannst du das mit dem Live HTTP Headers Addon für Firefox rausfinden. (Achtung, das ist nicht der Seitenheader, sondern die Headerinfo einer HTTP-Antwort, normalerweise unsichtbar!)

Wenn das alles sauber läuft gibts auch garantiert keine Probleme mit den Umlauten. Ansonsten gilt alles was ich mal in dem Cookbookartikel zusammengetragen hab, den Y!! schon erwähnt hat:
http://www.yiiframew...oc/cookbook/16/
0

#9 User is offline   Lollinger.de 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 79
  • Joined: 19-May 09
  • Location:Ulm, Germany

Posted 22 June 2009 - 02:11 AM

OK, hab ich gemacht, es war die Zeichcodierung in Eclipse, die war auf weiß der Geier was eingestellt, habs jetzt im Projekt und global in Eclipse auf UTF-8 eingestellt. Jetzt wird es auch bedingt richtig angezeigt, nämlich als eine Raute mit nem Fragezeichen drin anstatt dem ö. Die Codierung wird von IE7 (welche Wunder), FF und Chrome korrekt erkannt, auch automatisch, es ist überalle UTF-8 eingestellt.

Noch eine blöde Zwischenfrage aber warum funktioniert diese Zuweiseung nicht?


Yii::app()->session['testdata']['panels'][$header] = $body;


in $header und $body ist text enthalten, auch mit leerzeichen
0

#10 User is offline   Mike 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 3,016
  • Joined: 06-October 08
  • Location:Upper Palatinate

Posted 22 June 2009 - 04:06 AM

Probier doch nochmal mit ner "frischen" View-Testdatei, die bloß ein paar Umlaute enthält. Grad bei alten Dateien, die vorher eine andere Codierung hatten, kann bei der Umwandlung einiges schiefgehen - je nachdem, wie "intelligent" der Editor ist.

Zur Session:
Hast du Yii::app()->session->open() gemacht? Wie lang kann $header werden? Ich bin nicht sicher, wie lang ein Array-Schlüssel in PHP maximal sein darf, könnte aber begrenzt sein.

Ich würde mal mit ein paar print_r($_SESSION) an verschiedenen Stellen schaun, was so in der Session gespeichert wurde.
0

#11 User is offline   g3ck0 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 96
  • Joined: 03-June 09

Posted 22 June 2009 - 04:36 PM

das problem hatte ich leider auch... hab auch ewig rumgepfuscht, bis ich alles hatte:

  • Alle (nötigen) Dateien müssen im UTF-8-Format gespeichert sein
  • Alle Tabellen in der DB müssen im UTF-8-Format vorliegen! (bei mysql habe ich das hier: utf8_general_ci)

    Wichtig: wenn du den Zeichensatz der Spalten änderst, dann musst du alle Daten neu reinschreiben, da sonst das Problem mit der komischen Raute ergibt! MySQL speichert an dieser Stelle die Daten leider nicht im UTF-8-Format, sondern behält das alte bei...
  • Die Anwendung selbst muss als UTF-8 ausgeliefert werden.


Ich hoffe, ich habe alle Stellen erwähnt, sodass das keine Probleme mehr geben dürfte =)
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