it-swarm.com.de

Seltsame Zeichen auf Websites - ASCII? - UNICODE?

Ich habe im Laufe der Jahre viele sehr einfache reine HTML-Websites erstellt. Die meisten von ihnen scheinen die meiste Zeit gut zu funktionieren. Aber es gibt ein immer wiederkehrendes Problem, das ich nie mit merkwürdigen Charakteren gelöst habe.

Das Szenario sieht folgendermaßen aus: Ich erstelle die Site. Ich schaue es mir in meinem Browser an, alles sieht gut aus. Ich werde es in den kommenden Wochen oder Monaten sehr oft ansehen, wenn ich hier und da Ergänzungen mache. Möglicherweise in einer Vielzahl von Browsern auf einer Vielzahl von PCs. Dann schaue ich eines Tages auf die Seite und sehe ein zufälliges Streuen von weißen Fragezeichen gegen dunkle Diamantformen. Diese können dort erscheinen, wo ich Bindestriche, Anführungszeichen oder Apostrophe erwartet hatte. Mein unmittelbarer Gedanke ist, dass mein Browser in einen seltsamen Zustand geraten ist, weil ich eine fremde Website mit seltsamen Zeichen angesehen habe, aber ich bin mir nie ganz sicher. Ich habe das quälende Gefühl, dass vielleicht die Hälfte der Welt meine Website mit lustigen Fragezeichen überall sieht.

Meine Frage ist also, was los ist? Was kann ich tun, damit möglichst viele Menschen auf der ganzen Welt meinen Text so sehen können, wie ich es ursprünglich beabsichtigt hatte? Sollte ich diese speziellen HTML-Sequenzen wie verwenden

£

für alle nicht alphanumerischen Zeichen? Sollte ich mir überhaupt Sorgen machen?

Bearbeiten: Im Moment ist das Problem auf dieser Seite aufgetreten: http://www.fullreservebanking.com/papers.htm = ... ein Teil davon sieht so aus:

enter image description here

Ich verwende FireFox 5 und die Zeichenkodierung scheint derzeit "UNICODE (UTF-8)" zu sein. Ich kann mich nicht erinnern, die Zeichenkodierung seit der Installation manuell auf irgendetwas eingestellt zu haben. Ich schaue gelegentlich aus beruflichen Gründen auf japanischen Websites nach. Dabei ändere ich die Firefox-Einstellungen jedoch nicht manuell.

Bearbeiten: Jetzt behoben. Webseite entsprechend geändert.

3
Mick

Diese werden als Gremlins bezeichnet und werden normalerweise verursacht, weil jedes Programm, in das die Anführungszeichen gesetzt werden, die tatsächlichen hübschen/lockigen/intelligenten Anführungszeichen anstelle der richtigen HTML-Entitäten verwendet. Die Schriftarten werden nicht richtig angezeigt oder enthalten diese Zeichen nicht und haben stattdessen das lustige Symbol erzeugt.

Siehe dieser großartige Artikel aus A List Apart zu nicht mit Anführungszeichen in Zusammenhang stehenden typografischen Besonderheiten in HTML.

Am besten erstellen Sie ein Textverarbeitungsprogramm, das den Inhalt Ihrer Webseite verarbeitet, bevor er an den Benutzer gesendet wird (am besten nach dem Generieren des Inhalts und vor dem Speichern auf dem Server). Dieser Prozessor ersetzt diese Sonderzeichen durch einfachen Text und stellt an seiner Stelle die entsprechende HTML-Entität bereit.

Diese Seite aus dem PHP Handbuch gibt hervorragende Codebeispiele in PHP.

7
dmsnell

die Antwort von dmsnell zur Verwendung von HTML-Entitäten ist in Ordnung, aber dieses Problem kann in der Regel behoben werden, indem Sie sicherstellen, dass Sie während der gesamten Seitengenerierung das richtige UTF-8 verwenden und den Benutzern dienen.

Wenn Ihre Daten beispielsweise in einer Datenbank gespeichert sind, stellen Sie sicher, dass alle Textfelder die UTF-8-Codierung verwenden. Sie sollten den Zeichensatz auch festlegen, wenn Sie eine Verbindung zur Datenbank herstellen (wenn Sie PDO in PHP verwenden), oder eine Abfrage SET NAMES utf8 nach dem Herstellen der Verbindung ausführen, bevor Sie mit dem Abrufen von Daten beginnen.

PHP handhabt UTF-8 einwandfrei, wenn Sie keine Zeichenfolgen ändern. Wenn ja, müssen Sie die Verwendung der Multi-Byte-Funktionen mb_* untersuchen.

Fügen Sie auf der Seite selbst das Meta-Tag für den Inhaltstyp hinzu. Es sollte direkt nach dem öffnenden Tag <head> stehen.

<meta charset="utf-8">

Sie können dies stattdessen auch als HTTP-Header festlegen.

7
DisgruntledGoat

Mit anderen Worten, wenn Sie sich in WordPress und HTML5 befinden, kopieren Sie nur die richtigen utf-8-codierten Zeichen und das Problem ist behoben. Nur Google "utf-8 Liste der Zeichen" und kopieren Sie direkt von Ihrem Browser in Ihren Editor (im visuellen Modus). Dann das Fragezeichen? erscheint nicht wie �

1
Tim Helmer