Frage

Ich habe einen Backup -Server, der meine Live -Site, sowohl Dateien als auch Datenbank, automatisch unterstützt.

Auf der Live -Site sieht der Text gut aus, aber wenn Sie die gespiegelte Version davon anzeigen, wird er angezeigt? " Innerhalb einiger Text. Dieser Text wird in der Nachrichtendatenbanktabelle gespeichert.

Hier ist ein Screenshot, der auf dem Live -Server und davon auf dem gespiegelten Server ist.

Was könnte im Prozess der Unterstützung auf den gespiegelten Server passieren?alt text

War es hilfreich?

Lösung

Die folgenden Artikel werden nützlich sein

http://dev.mysql.com/doc/refman/5.0/en/charset-syntax.html

http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html

Nachdem Sie eine Verbindung zum Datenbank -Problem herstellen, den folgenden Befehl ausgeben:

Setzen Sie Namen 'UTF8';

Stellen Sie sicher, dass Ihre Webseite auch die UTF-8-Codierung verwendet:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

PHP bietet auch mehrere Funktionen, die für Conversions nützlich sein werden:

http://us3.php.net/manual/en/function.iconv.php

http://us.php.net/mb_convert_encoding

Andere Tipps

Bearbeiten Sie Ihre Apache-Konfigurationsdatei auf dem Server "Mirror" (dem Server mit dem Problem) und kommentieren Sie die folgende Zeile:

AddDefaultCharset UTF-8

Starten Sie dann Apache neu:

service httpd restart

Das Problem ist, dass die Zeile "addDefaultCharSet utf-8" den in den .html-Dateien angegebenen Inhaltstyp überschreibt. z.B:

<meta http-equiv=Content-Type content="text/html; charset=windows-1252">

Das häufigste Symptom ist, dass Charaktercodes über 127 als schwarze Diamanten mit Fragezeichen (in Chrom, Safari oder Firefox) oder als kleine Kisten (in IE und Oper) angezeigt werden. HTML-Dateien, die von Microsoft Word generiert werden, haben normalerweise viele solcher Zeichen, wobei die häufigste Zeichencode 160 = 0xa0 ist, was der Windows-1252-Codierung entspricht und häufig zwischen Spann-Tags wie folgt zu finden ist:

<span style="mso-spacerun: yes">ááá </span>

Ich bin hier auf der Suche nach einer Lösung für JavaScript, die im Browser angezeigt wird, und obwohl sie nicht direkt mit einer Datenbank zusammenhängen ...

In meinem Fall habe ich einen Text kopiert und eingefügt, den ich im Internet in eine JavaScript -Datei gefunden und mit Windows Notepad gespeichert habe.

Wenn die Seite, die diese JavaScript -Datei verwendet, die Zeichenfolgen ausgab, gab es Fragenmarkierungen (wie die in der Frage gezeigten) anstelle der Sonderzeichen wie Akzentschreiben usw.

Ich habe die Datei mithilfe geöffnet Notepad++. Gleich nach dem Öffnen der Datei sah ich, dass die Charakter -Codierung als festgelegt wurde ANSI Wie Sie sehen können (Mauszeiger auf Fußzeile) im folgenden Screenshot:

enter image description here

Um das Problem zu lösen, klicken Sie auf die Encoding Menü in Notepad++ und auswählen Encode in UTF-8. Du solltest gut gehen zu gehen. :)

Ihr Browser hat die Codierung der Seite nicht korrekt interpretiert (entweder weil Sie es einer bestimmten Einstellung gezwungen haben oder die Seite falsch eingestellt ist) und daher einige der Zeichen nicht anzeigen können.

Dies wird etwas mit Charaktercodierungen zu tun.

Sind Sie sicher, dass die gespiegelte Site die gleichen Eigenschaften in Bezug auf Zeichencodierungen wie Ihr Hauptserver enthält?

Je nachdem, welche Art von Server Sie haben, kann dies eine Eigenschaft des Serverprozesses selbst sein oder eine Umgebungsvariable sein.

Wenn dies beispielsweise eine Unix -Umgebung ist, versuchen Sie, Lang oder LC_ALL zu vergleichen?

Siehe auch hier

Überprüfen Sie, ob der Zeichensatz von Ihrem gespiegelten Server emittiert wird. Es scheint einen Unterschied zu dem zum Hauptserver zu geben - die Live -Site scheint Unicode auszugeben, wo der Spiegel nicht ist. Außerdem ist es normalerweise eine gute Idee, Unicode -Zeichen in Ihrem eingehenden Inhalt zu schrubben und sie durch ihre entsprechenden HTML -Entitäten zu ersetzen.

Ihr spezifisches Problem betrachtet "intelligente Zitate", "Em -Striche" und "EN -Striche". Ich weiß, dass Sie Em -Striche ersetzen können &mdash; und n-Dashes mit &ndash; (die auf der Eingabeseite Ihrer Datenbank erfolgen sollte); Ich weiß nicht, was der richtige Ersatz für die intelligenten Zitate sein würde. (Normalerweise ersetze ich einfach alle lockigen einzelnen Zitate durch 'und alle lockigen Doppelzitate mit "... Typografie -Geeks können mich frei fühlen, mich auf Sichtweite zu schießen.)

Ich sollte beachten, dass einige Browser mit diesem Problem mehr verzeihend sind als andere-Internet Explorer unter Windows neigt dazu, dies automatisch zu erkennen und zu "beheben". Firefox und die meisten anderen Browser zeigen die Fragezeichen.

Normalerweise verfluche ich MS -Wort und führen dann das folgende WScript aus.

// Ersetzen Sie durch einen Pfad zu einer Datei, die gereinigt werden muss
Path = "test.html"

var go = wscript.createObject ("scripting.FilesSystemObject");
var content = go.getFile (Pfad) .OpenastextStream (). ReadAll ();
var out = go.createTextFile ("Clean-"+Path, True);

// Symbole
content = content.replace (/"/g, '"');
content = content.replace (/”/g, '"');
content = content.replace (/'/g, "'");
content = content.replace (/-/g, "-");
content = content.replace (/©/g, "©");
content = content.replace (/®/g, "®");
content = content.replace (/°/g, "°");
content = content.replace (/¶/g, "u003Cp> ");
content = content.replace (/¿/g, "¿");
content = content.replace (/¡/g, '¡');
content = content.replace (/¢/g, '¢');
content = content.replace (/£/g, '£');
content = content.replace (/¥/g, '¥');

out.write (Inhalt);

Unicode oder andere Zeichen setzen Zeichen durch?

Ich habe ähnliche "seltsame" Zeichen gesehen, an denen ich oft gearbeitet habe, an denen ich oft gearbeitet habe, wenn der Text aus einer E -Mail oder einem anderen Dokumentformat (z. B. Word) in einen Texteditor kopiert wird. Der Editor kann die Nicht -ASCII -Zeichen anzeigen, der Browser kann jedoch nicht. Für die Website würde ich empfehlen, den HTML -Entitätscode für den Charakter nachzuschlagen und dies stattdessen einzufügen ... oder zu mehr Standards wechseln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top