Frage

Ich lerne immer noch die Seile mit PHP & MySQL und ich weiß, ich mache etwas falsch hier mit, wie Zeichensätze eingerichtet sind, kann aber nicht ganz herausfinden, von hier zu lesen und im Internet, was ich tun soll, .

Ich habe eine Standard-LAMP-Installation mit PHP 5, MySQL 5. Ich habe alles auf die Standardwerte gesetzt. Wenn einige meiner Benutzer Eingabe Kommentare zu unserer Datenbank zeigen einige Zeichen auf falsch - meist Apostrophe und Bindestriche em im Moment. In MySQL zeigt apostrostrophes als â € ™ auf. Sie zeigen auf diese Weise auf der Seite auch (ich htmlentities zu Ausgangsnutzdaten Kommentare verwenden).

In phpMyAdmin sagt es mein MySQL Charset ist UTF8-Unicode.

In meiner Datenbank meiner Tabellen sind alle mit dem Standard-Latin1-Schwedisch-ci einzurichten.

Meine Webseite haben alle meta http-equiv = "Content-Type" content = "text / html; charset = utf-8"

Wenn ich die HTTP-Header der Seite sehe ich sehen: Content-Type: text / html

Wie ein Neuling, hatte ich nicht als Zeichensätze überhaupt, bis die Dinge begann, mich seltsam auf einige meiner Seiten. So ist es am sinnvollsten, für mich alles zu utf-8 zu konvertieren und diesem meinem PHP-Code aus? Oder sollte ich versuchen, sie alle in Latein zu bekommen? Und muss ich in die Datenbank gehen und diese ungerade Codes ersetzen, oder werden sie auf magische Weise angezeigt werden, wenn ich richtig die charsets einrichten? All das Hantieren ich getan habe bisher nicht geholfen (Ich habe die HTTP-Header auf utf-8, und auch lateinische versucht).

War es hilfreich?

Lösung

http://www.phpwact.org/php/i18n/charsets

Diese Stelle gab mir viele gute Ratschläge, wie alles in UTF-8 schön machen spielen.

I recomened auch von htmlentities zu htmlspecialchars Schalen wie es UTF freundlich.

ist

Der wichtigste Punkt ist, dass alles spricht die gleiche Sprache zu machen. Ihre Datenbank, Datenbankverbindung, Ihre PHP, Ihre Seite ist in UTF-8 (sollte einen Meta-Tag und einen Kopf sagte so).

Andere Tipps

Wenn Sie wirklich diese Probleme wollen verstehen, würde ich durch die Lektüre dieser Artikel zu mysql.com . Im Grunde wollen Sie jedes Stück des Puzzles UTF-8 Unicode zu erwarten. Auf der PHP-Seite, wollen Sie so etwas wie zu tun:

<?php header("Content-type: text/html; charset=utf-8");?>
<html>
  <head>
     <meta http-equiv="Content-type" value="text/html; charset=utf-8">

Und wenn Sie Ihren Einsatz Abfragen ausführen Sie sicher, dass beide Zeichencodierung ist der Tisch machen wollen und die Codierung, die Sie die Abfragen in UTF-8 laufen. Sie können die letztere erreichen, indem die Abfrage SET NAMES utf8 läuft rechts, bevor Sie einen Einsatz Abfrage ausführen.

Es tut uns nicht alle Ihre Frage zu verstehen. „? UTF-8 oder nicht“ Aber wenn ein Teil der Frage ist, lautet die Antwort: „UTF-8, natürlich“

Sie wollen auf jeden Fall Dinge sortieren, lieber jetzt als später. Einer der wichtigsten Programmierregeln ist nicht eine schlechte Idee in Gang zu halten - nicht graben sich in jeder tieferen

!

Als latin1 und utf-8 kompatibel sind, können Sie Ihre Tabellen konvertieren verwenden utf-8, ohne die Daten von Hand enthalten zu manipulieren. MySQL wird diesen Teil für Sie in Ordnung bringen.

Es ist dann wichtig, zu überprüfen, ob alles spricht utf-8. Stellen Sie die HTTP-Header in Apache oder einen Meta-Tag verwenden -. Dies sagt zu einem Browser, die HTML-Ausgabe ist utf-8

In diesem Sinne, müssen Sie alle Daten, um sicherzustellen, dass Sie wirklich utf-8 senden! Konfigurieren Sie Ihre IDE PHP / HTML-Dateien als UTF-8 zu speichern. Schließlich stellen Sie sicher, dass PHP eine utf-8 Verbindung zu MySQL verwendet - Ausgabe dieser Abfrage nach Aufbau der Verbindung:

SET NAMES 'utf-8';
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top