"’" zeigt auf Seite anstelle von "' "
’
ist anzeigen auf meiner Seite statt '
.
Habe ich die Content-Type
eingestellt UTF-8
sowohl in meinem <head>
tag und meine HTTP-Header:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Darüber hinaus, mein browser ist so eingestellt,Unicode (UTF-8)
:
Wo ist also das problem, und wie kann ich es beheben?
InformationsquelleAutor der Frage Jitendra Vyas | 2010-03-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sicherzustellen das der browser und-editor mit Codierung UTF-8 statt ISO-8859-1/Windows-1252.
Oder verwenden Sie
’
.InformationsquelleAutor der Antwort kennytm
Es ist ein
’
(RIGHT SINGLE QUOTATION MARK
- U+2019) Zeichen, das codiert wurde als CP-1252 statt UTF-8. Wenn Sie das Kontrollkästchen Codierungen Tabelle, dann sehen Sie, dass dieses Zeichen ist in UTF-8 aus Byte0xE2
0x80
und0x99
. Wenn Sie das Kontrollkästchen CP-1252 code page layoutdann wirst du sehen, dass jedes dieser bytes stehen für die einzelnen Zeichenâ
€
und™
.UTF-8 anstelle von CP-1252 zu Lesen, zu schreiben, zu speichern, und die Zeichen angezeigt.
Diese nur weist den client, welche Codierung zu verwenden, zu interpretieren und die Zeichen angezeigt. Diese nicht anweisen, in Ihrem eigenen Programm die Codierung zu verwenden, um Lesen, schreiben, speichern und anzeigen der Zeichen in. Die genaue Antwort hängt von der server-Seite die Plattform /die Datenbank /Programmiersprache verwendet. Bitte beachten Sie, dass die im HTTP-response-header vor dem HTML-meta-tag. HTML-meta-tag würde nur verwendet werden, wenn die Seite geöffnet wird von der lokalen Festplatte die Datei-system anstelle von HTTP.
Diese nur zwingt den client, welche Codierung zu verwenden, zu interpretieren und die Zeichen angezeigt. Das eigentliche problem ist aber, dass Sie bereits senden
’
(UTF-8-codiert) an den client statt’
. Der client ist korrekt anzeigen’
mit dem UTF-8-Codierung. Wenn der Kunde misinstructed zu verwenden, zum Beispiel ISO-8859-1, würden Sie wahrscheinlich gesehen habenââ¬â¢
statt.Dies ist wahrscheinlich, wo dein problem liegt. Sie brauchen, um zu überprüfen, mit einer unabhängigen Datenbank-tool, was die Daten Aussehen.
Wenn die
’
Charakter, dann ist Sie nicht die Verbindung zu der Datenbank korrekt. Sie müssen sagen Sie den database connector mit UTF-8.Wenn Ihre Datenbank enthält
’
dann ist es Ihre Datenbank Durcheinander gebracht hat. Wahrscheinlich die Tabellen sind nicht für die Verwendung konfiguriertUTF-8
. Stattdessen nutzen Sie die Datenbank der Standard-Codierung, die variiert je nach Konfiguration. Wenn dies Ihr Problem ist, dann in der Regel nur die änderung der Tabelle für die Verwendung von UTF-8 ist ausreichend. Wenn Ihre Datenbank nicht unterstützt, müssen Sie zum erstellen der Tabellen. Es ist eine gute Praxis, die Codierung der Tabelle, wenn Sie es schaffen.Sind Sie wahrscheinlich mithilfe von SQL Server, aber hier sind einige MySQL-code (kopiert von dieser Artikel):
Wenn Ihre Tabelle ist aber schon UTF-8, dann werden Sie brauchen, um einen Schritt zurück. Die oder was legen Sie die Daten dort. Das istwo das problem ist. Ein Beispiel dafür wäre das HTML-Formular übermittelten Werte falsch codiert/decodiert.
Hier sind einige weitere links, um mehr zu erfahren über das problem:
InformationsquelleAutor der Antwort BalusC
Ich habe einige Dokumente, wo
…
war zu zeigen, wie…
undê
war zu zeigen, wieê
. Dies ist, wie Sie dorthin gekommen ist (python-code):Um das problem zu beheben, benutzte ich die python-code wie folgt:
(Da hatte jemand eingefügt, der twingled version in einem richtigen UTF-8-Dokument, ich hatte eigentlich zu extrahieren nur die twingled Teil, detwingle es und legen Sie es wieder in. Ich verwendet BeautifulSoup.
Es ist weit mehr wahrscheinlich, dass Sie haben Charlie in die content-Erstellung als web-server-Konfiguration ist falsch. Sie können auch erzwingen, dass Ihre web-browser zu twingle die Seite, indem Sie windows-1252-Codierung für utf-8-Dokument. Ihr web-browser kann nicht detwingle das Dokument, dass Charlie gerettet.
Hinweis: das gleiche problem passiert bei jedem anderen single-byte-Codepage (z.B. latin-1) anstelle von windows-1252.
InformationsquelleAutor der Antwort Terrel Shumway
’
(Unicode-codepointU+2019 RIGHT SINGLE QUOTATION MARK
) ist in UTF-8 codiert als bytes:0xE2 0x80 0x99
.’
(Unicode-CodepointU+00E2 U+20AC U+2122
) ist in UTF-8 codiert als bytes:0xC3 0xA2
0xE2 0x82 0xAC
0xE2 0x84 0xA2
.Diese sind die bytes, die Ihr browser empfangen, um zu produzieren
’
bei der Verarbeitung als UTF-8.Das bedeutet, dass die Quelle der Daten wird durch zwei charset Konvertierungen, bevor Sie an den browser geschickt:
Quelle
’
Charakter (U+2019
) wird zunächst kodiert als UTF-8-bytes:0xE2 0x80 0x99
die einzelnen bytes dann mis-interpretiert und dekodiert Unicode-codepoints
U+00E2 U+20AC U+2122
durch eine der Windows-125X Zeichensätze (1252, 1254, 1256 und 1258 alle anzeigen0xE2 0x80 0x99
zuU+00E2 U+20AC U+2122
), und dann diese codepoints sind codiert als UTF-8-bytes:0xE2
->U+00E2
->0xC3 0xA2
0x80
->U+20AC
->0xE2 0x82 0xAC
0x99
->U+2122
->0xE2 0x84 0xA2
Musst du herausfinden, wo die zusätzliche Umwandlung in Schritt 2 durchgeführt wird, und entfernen Sie es.
InformationsquelleAutor der Antwort Remy Lebeau
Wenn Ihr content-Typ ist bereits UTF8 , dann ist es wahrscheinlich die Daten schon angekommen in der falschen Codierung. Wenn Sie die Daten aus einer Datenbank, stellen Sie sicher, dass die Datenbankverbindung UTF-8 verwendet.
Wenn diese Daten aus einer Datei, stellen Sie sicher, dass die Datei korrekt codiert als UTF-8. Sie können in der Regel legen Sie diese in den "Speichern unter..." - Dialog des Editors Ihrer Wahl.
Wenn die Daten bereits gebrochen, wenn Sie Sie in der Quelldatei, die Chancen sind, dass es verwendet werden, um UTF-8-Datei, wurde aber gerettet in die falsche Codierung irgendwo auf dem Weg.
InformationsquelleAutor der Antwort Pekka 웃
Haben Sie einen Konflikt in Ihrem Zeichenkodierung; die Zeichenfolge codiert, in einer Zeichencodierung (UTF-8) und was ist die Interpretation dieser Seite ist mit einem anderen (z.B. ASCII).
Geben Sie immer Ihre Kodierung im http-Header und stellen Sie sicher, dass diese Spiele Ihre framework-definition-Kodierung.
Beispiel-http-header:
Einstellung der Zeichencodierung in asp.net
Einstellung der Zeichencodierung in jsp
InformationsquelleAutor der Antwort David Waters
Dies geschieht manchmal, wenn ein string umgewandelt wird von Windows-1252 nach UTF-8 zweimal.
Hatten wir diese in einer Zend/PHP/MySQL-Anwendung, wo die Zeichen waren, die in der Datenbank, vermutlich durch die MySQL-Verbindung nicht die Angabe des richtigen Zeichensatzes. Wir hatten:
Sicherzustellen, Zend und PHP wurden die Kommunikation mit der Datenbank in UTF-8 (war nicht standardmäßig)
Reparatur der gebrochenen Charaktere mit mehreren SQL-Abfragen wie diese...
Tun Sie dies für so viele Tabellen/Spalten wie nötig.
Können Sie auch fix einige dieser strings in PHP, wenn nötig. Beachten Sie, dass, weil die Zeichen wurden codiert zweimaldie wir eigentlich tun müssen, um eine umgekehrte Konvertierung von UTF-8 zurück zu Windows-1252, das verwirrt mich zunächst.
InformationsquelleAutor der Antwort Simon East
Wenn jemand ruft diesen Fehler auf WordPress-website, die Sie benötigen, zu ändern, wp-config-db-charset:
statt:
InformationsquelleAutor der Antwort Goran Jakovljevic
Müssen Sie kopieren/einfügen von text aus Word-Dokument. Word-Dokument verwenden Sie "Anführungszeichen". Sie können ersetzen es mit Speziellen Zeichen (…) oder geben Sie einfach in Ihr HTML-editor (').
Ich bin sicher, dies wird Ihr problem lösen.
InformationsquelleAutor der Antwort Kaushal Panchal
Das gleiche passierte mir mit der ' – ' - Zeichen (long minus-Zeichen).
Ich habe diese einfach ersetzen, so dass Sie es beheben:
InformationsquelleAutor der Antwort TomerB
Anstelle Pfund-Zeichen habe ich verwendet: & pound; ohne Platz. Diese behoben das Problem für mich.
Für Euro: & euro; ohne Platz.
InformationsquelleAutor der Antwort Techtic Solutions