Ergebnis 1 bis 11 von 11
  1. #1
    Lioba ist offline Tripel-As
    registriert
    14-11-2006
    Beiträge
    192

    Ärger mit Special - Chars

    Hallo!

    Ich habe ein Poblem mit der Übersetzung und Darstellung von Umlauten und dem scharfen S.
    Mein Php-Script ließt aus einer Datenbank einen Attackennamen aus,
    z.B. Blätterwind. Den schreibt es dann in einen JS-Array. Hier eine vereinfachte Form meines Scriptes:

    //PHP-Datei
    <?
    $sql = 'SELECT name FROM attacken WHERE id = 1';
    //sql-abfrage usw.

    $js = '
    attacken = [];
    attacken[1] = "'.$name.'";
    ';

    echo $js
    ?>

    Meine Js-Datei ruft per AJAX-Funktion die php-datei auf und erhält alles, was echo ausgibt,
    danach nehme ich eval(xmlHttp.responseText) um den übergebenen Array benutzen zu können.

    Das funktioniert alles hervorragend. Bis auf die Übersetzung der Special Chars.
    Im Php-Scrpit lassen sie sich einfach nicht übersetzen,
    benutze ich z.B.
    str_replace('ä', '[ae]', "Blätterwind"), funktioniert es, benutze ich aber
    str_replace('ä', '[ae]', $name), wird das ä nicht gefunden, wenn ich anstatt "ä" z.B. "" ersetzen möchte,
    geht es wieder. Ich habe es bereits mit '&aauml;','&#228;' und '&#xE4;' versucht wobei die
    letzteren aus dem binär- und hex-System sind. Alle Umlaute werden von str_replace und auch von
    htmlspecialchars und htmlentities nicht erkannt.

    Ich programmiere in der LAMMP-Umgebung auf einem Net-Book mit Aspire One und wenn ich im Gegensatz zu Windows in den
    Quellcode einen Umlaut schreibe, wird er im Browser als seltsames Zeichen dargestellt.

    Ich hoffe, ihr wisst eine Antwort!

  2. #2
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Ärger mit Special - Chars

    Welche Kodierung
    - haben die Daten in der Datenbank
    - deine php Dateien
    - die ausgelieferte HTML Seite

    AJAX bzw. der XMLRequest ist üblicherweise in utf-8

  3. #3
    Lioba ist offline Tripel-As
    registriert
    14-11-2006
    Beiträge
    192

    AW: Ärger mit Special - Chars

    Ich arbeite mit Quanta-Plus und dort habe ich verschiedene Einstellungen bei Encoding. Momentan ist utf8 angekreuzt. Bei phpmyAdmin steht utf8_general_ci. Mit Quanta erstelle ich sowohl PHP als auch HTML-Dateien, wobei ich HTML nur durch php ausgebe, also gar keine html-Endung mehr benutze. Ich hoffe, du kannst damit was anfangen...

  4. #4
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Ärger mit Special - Chars

    Die Dateiendung spielt keine Rolle. So wie es aussieht, ist die Kodierung deiner HTML ausgabe in ISO, was die Darstellungsprobleme erklärt.

  5. #5
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.640

    AW: Ärger mit Special - Chars

    Zitat Zitat von ein schlauer Beitrag anzeigen
    Die Dateiendung spielt keine Rolle. So wie es aussieht, ist die Kodierung deiner HTML ausgabe in ISO, was die Darstellungsprobleme erklärt.
    soweit ich ihn verstanden habe, hat er gar kein darstellungsproblem in html, sonder probleme mit str_replace in php. str_replace kommt mit utf-8 aber nicht zurecht, entweder nimmst du die PHP: Multibyte String Functions - Manual oder codierst den string in iso.

  6. #6
    Lioba ist offline Tripel-As
    registriert
    14-11-2006
    Beiträge
    192

    AW: Ärger mit Special - Chars

    >>soweit ich ihn verstanden habe, hat er gar kein darstellungsproblem in htm
    also bedeutet das, dass jedes zeichen, das ich in meinem code habe im iso-format ist, oder sind das nur die besonderen Zeichen? Weil str_replace ja alle "normalen" Buchstaben ersetzen kann.

    >>entweder nimmst du die PHP: Multibyte String Functions - Manual
    was genau soll ich davon nehmen? str_replace ist nicht dabei...

    >> oder codierst den string in iso.
    was muss ich mir darunter vorstellen?

  7. #7
    Lioba ist offline Tripel-As
    registriert
    14-11-2006
    Beiträge
    192

    AW: Ärger mit Special - Chars

    Ich habe über iso und utf8 gegoogelt, und das Problem ist gelöst!
    Ich brauchte nur diese Funktion: utf8_encode()
    Hier ein Beispiel:
    str_replace($specialChars, $replace, utf8_encode($string))
    Es funktioniert! Vielen Dank für eure Hillfe, sonst hätte ich ja nicht gewusst, wonach ich suchen sollte ^^

  8. #8
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.640

    AW: Ärger mit Special - Chars

    Zitat Zitat von Lioba Beitrag anzeigen
    >>soweit ich ihn verstanden habe, hat er gar kein darstellungsproblem in htm
    also bedeutet das, dass jedes zeichen, das ich in meinem code habe im iso-format ist, oder sind das nur die besonderen Zeichen? Weil str_replace ja alle "normalen" Buchstaben ersetzen kann.
    das bedeutet erst mal nur, daß ich denke, daß du kein Problem mit falsch dargestellten Zeichen im Browser hast. Ich vermute, daß du deine daten in der DB im utf-8 encoding vorliegen hast. utf-8 ist ein multibyte-character-set. die einzelnen zeichen sind also unterschiedlich lang. die 1. 128 zeichen entsprechen den ASCII-zeichen. dein ä nicht, dieses ist in utf-8 codiert 2 byte groß.

    Zitat Zitat von Lioba Beitrag anzeigen
    >>entweder nimmst du die PHP: Multibyte String Functions - Manual
    was genau soll ich davon nehmen? str_replace ist nicht dabei...
    mb_str_replace - Google-Suche

    Zitat Zitat von Lioba Beitrag anzeigen
    >> oder codierst den string in iso.
    was muss ich mir darunter vorstellen?
    PHP: utf8_decode - Manual

  9. #9
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Ärger mit Special - Chars

    Zitat Zitat von Lioba Beitrag anzeigen
    Ich habe ein Poblem mit der Übersetzung und Darstellung von Umlauten und dem scharfen S.

    ...

    und wenn ich im Gegensatz zu Windows in den
    Quellcode einen Umlaut schreibe, wird er im Browser als seltsames Zeichen dargestellt.
    Das klingt für mich nach einem Problem mit falsch dargestellten Zeichen. Und wie gesagt, für mich klingt das ganze so, als ob die Seite in ISO dargestellt wird, die zeichen sind aber in utf-8, anstatt diese umzuwandeln, wäre es doch einfacher die Seite in utf-8 darzustellen.

  10. #10
    Avatar von dkdenz
    dkdenz ist offline Foren-Gott
    registriert
    13-04-2004
    Ort
    Lübeck
    Beiträge
    12.050

    AW: Ärger mit Special - Chars

    Wäre auch interessant zu wissen, ob der Server an sich schon ein Charset sendet, und wenn ja, welchen.
    Denn hierbei ist oftmals das Problem zu lokalisieren.
    Denn wenn Du in XHTML (die Dateiendung spielt, wie erwähnt, keine Rolle) Dein Charset in einen Meta-Tag schreibst, der Server aber einen anderen Charset sendet, dann gilt der Charset des Servers, da bei XHTML der Meta-Charset irrelevant ist.

  11. #11
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Ärger mit Special - Chars

    Zitat Zitat von dkdenz Beitrag anzeigen
    Wäre auch interessant zu wissen, ob der Server an sich schon ein Charset sendet, und wenn ja, welchen.
    Im Prinzip wäre es interessant zu wissen welche Kodierung überhaupt verwendet wird, da wir an dem Punkt ja noch spekulieren. Vielleicht weiß Lioba auch nicht wie man sich diese Information anzeigen lassen kann?

Ähnliche Themen

  1. Firefox Fehler-Konsole macht Ärger bei Filter
    Von Lioba im Forum CSS und (X)HTML
    Antworten: 3
    Letzter Beitrag: 03-09-2008, 09:56
  2. Special Box
    Von Kaila im Forum JavaScript
    Antworten: 10
    Letzter Beitrag: 08-09-2007, 11:28
  3. session 'special'
    Von Toxictype im Forum Serverseitige Programmierung
    Antworten: 13
    Letzter Beitrag: 14-12-2006, 21:34
  4. [Silicon] Interner Ärger bei Microsoft wegen Vista
    Von jswelt bot im Forum Smalltalk
    Antworten: 0
    Letzter Beitrag: 28-03-2006, 06:47
  5. Ärger mit for-Schleife: Radiobuttons
    Von jacky im Forum JavaScript
    Antworten: 6
    Letzter Beitrag: 18-11-2002, 11:33

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •