tag:forum.selfhtml.org,2005:/self Text mit Umlaute werden nicht angezeigt – SELFHTML-Forum 2014-11-02T09:01:21Z https://forum.selfhtml.org/self/2014/nov/1/text-mit-umlaute-werden-nicht-angezeigt/1623989#m1623989 hosch 2014-11-01T22:20:33Z 2014-11-01T22:20:33Z Text mit Umlaute werden nicht angezeigt <p>Hallo,<br> ich habe XAMPP mit PHP Version 5.4.7 und MySQL Versions 4.0.4.2 installiert.<br> Habe ich jetzt Texte in der Datenbank, die Umlaute enthalten, werden diese gar nicht angezeigt.<br> Ich habe die Texte in der PHP-Datei mit htmlentities() formatiert.<br> Wie kann ich das Problem beheben?<br> Danke für die Hilfe!</p> https://forum.selfhtml.org/self/2014/nov/1/text-mit-umlaute-werden-nicht-angezeigt/1623992#m1623992 ralphi ralphi4211@yahoo.de 2014-11-01T23:35:48Z 2014-11-01T23:35:48Z Text mit Umlaute werden nicht angezeigt <p>Hi,</p> <p>das mit den Umlauten ist ein ewiges Thema bei mir.<br> Eine durchgängige Lösung hab ich nicht.</p> <p>Setz am Anfang der php Datei:</p> <pre><code class="block language-php"><span class="token comment">//header('Content-Type: text/html; charset=ISO-8859-1'); // wenn ? ausgibt </span> <span class="token function">header</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Content-Type: text/html; charset=UTF-8'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// wenn zwei zeichen ausgibt</span> </code></pre> <p>Bei mir sind die Umlaute nicht als „lesbare“ in der DB.<br> sondern konvertiert HTML<br> <code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">charset</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ISO-8859-1<span class="token punctuation">"</span></span><span class="token punctuation">></span></span></code></p> <p>Viele Grüße aus LA</p> <div class="signature">-- <br> ralphi </div> https://forum.selfhtml.org/self/2014/nov/1/text-mit-umlaute-werden-nicht-angezeigt/1623991#m1623991 Linuchs 2014-11-02T01:15:46Z 2014-11-02T01:15:46Z Text mit Umlaute werden nicht angezeigt <blockquote> <p>Habe ich jetzt Texte in der Datenbank, die Umlaute enthalten, werden diese gar nicht angezeigt.</p> </blockquote> <p>Ein Umlaut reicht, und der gesamte Text verschwindet?</p> <blockquote> <p>Ich habe die Texte in der PHP-Datei mit htmlentities() formatiert.</p> </blockquote> <p>Ich arbeite in der Datenbank, im PHP-Programm und im Browser durchgehend mit UTF-8</p> <p><code class="language-php"><span class="token keyword">echo</span> <span class="token string double-quoted-string">"[äöüßÄÖÜ] ["</span><span class="token operator">.</span><span class="token function">htmlentities</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'äöüßÄÖÜ'</span><span class="token punctuation">)</span><span class="token operator">.</span><span class="token string double-quoted-string">"]<br>"</span><span class="token punctuation">;</span></code><br> ergibt im Quellcode: [äöüßÄÖÜ] [&Atilde;&curren;&Atilde;&para;&Atilde;&frac14;&Atilde;�&Atilde;�&Atilde;�&Atilde;�]<br><br> angezeigt sieht das so aus: [äöüßÄÖÜ] [äöüÃ�Ã�Ã�Ã�]</p> <p>Also weder der Text noch die Umlaute verschwinden, sie werden durch htmlentities verfälscht.</p> <p>Linuchs</p> https://forum.selfhtml.org/self/2014/nov/1/text-mit-umlaute-werden-nicht-angezeigt/1623990#m1623990 dedlfix 2014-11-02T09:01:21Z 2014-11-02T09:01:21Z Text mit Umlaute werden nicht angezeigt <p>Tach!</p> <blockquote> <p>ich habe XAMPP mit PHP Version 5.4.7 und MySQL Versions 4.0.4.2 installiert.</p> </blockquote> <p>MySQL 4 und noch dazu 4.0 ist völlig veraltet. Ist das ein Schreibfehler oder wirklich so? MySQL 4.0 jedenfalls hat, was Zeichenkodierungen angeht, nur eine sehr rudimentäre Unterstützung eingebaut. Erst ab 4.5 ist das brauchbar. Aktuell sind aber die Version 5.6 oder MariaDB 10.0 (kompatibel zu MySQL 5.5 und 5.6).</p> <blockquote> <p>Habe ich jetzt Texte in der Datenbank, die Umlaute enthalten, werden diese gar nicht angezeigt.</p> </blockquote> <p>Bitte zunächst die Grundlagen erarbeiten: <a href="http://wiki.selfhtml.org/wiki/Zeichenkodierung" rel="nofollow noopener noreferrer">http://wiki.selfhtml.org/wiki/Zeichenkodierung</a></p> <blockquote> <p>Ich habe die Texte in der PHP-Datei mit htmlentities() formatiert.</p> </blockquote> <p>htmlentities() ist eine Funtion, die man bei korrektem Umgang mit Zeichenkodierung nicht braucht. (Allerdings braucht man weiterhin htmlspecialchars(). Näheres zu dieser Problematik siehe <a href="http://wiki.selfhtml.org/wiki/Kontextwechsel" rel="nofollow noopener noreferrer">Kontextwechsel</a>.) Jedenfalls klappt es nicht, einfach eine Funktion auf eine Bytefolge zu hauen und ein Ergebnis zu erwarten, das man sich lediglich vorgestellt hat. Auch wenn man htmlentities() anwendet, benötigt man ein Grundverständnis zum Thema Zeichenkodierung, wenn ein brauchbares Ergebnis rauskommen soll.</p> <blockquote> <p>Wie kann ich das Problem beheben?</p> </blockquote> <p>Zunächst wäre eine Analyse notwendig. Wenn du allerdings noch am Anfang des Projekts stehst und keine bereits fehlerhaft kodierten Daten korrigieren musst, reicht es, die Hinweise zur Konfiguration der beteiligten Systeme im verlinkten Artikel und seinen Unterseiten zu beachten.</p> <p>dedlfix.</p>