Festlegen der PHP-Standardcodierung auf UTF-8

Lesezeit: 4 Minuten

Festlegen der PHP Standardcodierung auf UTF 8
JDelage

Im „PHP Cookbook“ heißt es (S. 589), dass es notwendig ist, die default_encoding Konfiguration zu utf-8.

Ich kann diese Konfiguration jedoch nicht in der Datei finden php.ini. Soll ich einfach eine Zeile hinzufügen, die sagen würde default_encoding = "utf-8"?

Ich habe eine ;default_charset = “iso-8859-1”. Wie du siehst (;), im Moment ist es nicht aktiviert. Soll ich das Semikolon entfernen und auf setzen "utf-8"? Kümmert sich das um die Standardcodierung?

Ich habe auch andere Codierungsanweisungen gefunden, bei denen ich nicht weiß, was ich tun soll:

[iconv]
;iconv.input_encoding = ISO-8859-1
;iconv.internal_encoding = ISO-8859-1
;iconv.output_encoding = ISO-8859-1
...
; http://php.net/exif.encode-unicode
;exif.encode_unicode = ISO-8859-15
...
;mssql.charset = "ISO-8859-1"
...
;exif.encode_unicode = ISO-8859-15

Gibt es einen Grund, warum ich sie nicht einfach alle durch ersetzen sollte? utf-8?

  • Was ist “PHP-Kochbuch”?. Das Buch “PHP-Kochbuch: Lösungen und Beispiele für PHP-Programmierer”? Oder etwas anderes?

    – Peter Mortensen

    19. Februar um 23:07 Uhr


1647265447 848 Festlegen der PHP Standardcodierung auf UTF 8
Kurve

Sie sollten Ihre einstellen default_charset zu UTF-8:

default_charset = "utf-8"

(PHP-Kochbuch kann einen Tippfehler enthalten, wenn sie Sie bitten, die zu ändern default_encoding – Davon habe ich noch nie gehört.)

Sie sollten auch sicherstellen, dass Ihr Webserver auf die Ausgabe von UTF-8 eingestellt ist, wenn Sie UTF-8-codierte Zeichen ausgeben möchten. In Apache kann dies durch in der eingestellt werden httpd.conf Datei:

AddDefaultCharset UTF-8

Was das Modifizieren angeht iconv, exifund mssql Kodierungseinstellungen, müssen Sie diese wahrscheinlich nicht festlegen (Ihre Einstellungen haben diese ohnehin auskommentiert), aber es ist trotzdem eine gute Idee, sie alle auf UTF-8 zu ändern.

  • Für Apache habe ich keine http.conf Datei. Ich benutze WAMPserver und sie versenden Apache mit einem httpd.conf Datei. Ich nehme an, sie sind dasselbe? Ist das auch eine Zeile, die Sie manuell hinzufügen? In meinem steht nichts über Zeichensatz httpd.conf Datei.

    – JDelage

    19. Februar 2012 um 19:21 Uhr

  • das war eigentlich ein Tippfehler meinerseits (korrigiert). Wenn Sie keinen Verweis auf sehen AddDefaultCharset in der Konfigurationsdatei möchten Sie vielleicht die enthaltenen Konfigurationsdateien durchsehen (es wird so etwas wie Include conf/extra/[something]), um zu sehen, ob es in einem davon festgelegt ist. Wenn nicht, fügen Sie es einfach der Hauptdatei httpd.conf hinzu.

    – Kurve

    19. Februar 2012 um 19:30 Uhr

  • Gibt es eine Art Erklärung, die erklärt, was all diese Codierungsfunktionen bewirken?

    – CMCDragonkai

    7. Januar 2014 um 6:37 Uhr

  • @CMCDragonkai – fragen Sie nur nach einer allgemeinen Erklärung der Zeichencodierung oder speziell nach dem, was die aufgelisteten Einstellungen steuern?

    – Kurve

    7. Januar 2014 um 15:06 Uhr

  • Die aufgeführten Einstellungen. Es gibt viel von iconv und mb_string.

    – CMCDragonkai

    8. Januar 2014 um 17:19 Uhr

Festlegen der PHP Standardcodierung auf UTF 8
gioele

Ändern Sie die Zeile

;default_charset = "iso-8859-1"

lesen

default_charset = "utf-8"

Berühren Sie die anderen Optionen nicht. Vermeiden Sie Standardeinstellungen, legen Sie bei allem, was Sie tun, immer explizit die Kodierung von fest

  • Datenbankverbindungen,
  • Lesen und Schreiben von Dateien,
  • Konvertieren mit iconv.

Achten Sie auch auf die Codierung, in der Ihre PHP-Dateien gespeichert sind, stellen Sie sicher, dass sie in UTF-8 vorliegen, insbesondere wenn sie Zeichenfolgen enthalten, die angezeigt oder verglichen werden sollen.

1647265448 605 Festlegen der PHP Standardcodierung auf UTF 8
Miguel

Ich hatte ein Problem bei meiner MySQL-Abfrage, dass einige lateinische Akzente nicht erkannt wurden, sodass die Abfrage fehlschlug. Ich dachte, es könnte die PHP-Datei sein und so weiter, bis ich herausfand, dass ich mit PDO zum Aufrufen der MySQL-Funktion den Zeichensatz hinzufügen musste. Das Seltsame ist, dass es auf dem vorherigen Server, den ich verwendet habe, gut funktioniert hat!

$dsn = 'mysql:host=localhost;dbname=retirodo_main;charset=utf8';
- - - - - - - - - - - - - - - - - - - - - - - - - ^^^^^^^^^^^^

  • @Marcos, als Sie die Antwort bearbeitet haben, sehe ich, dass der Fettdruck verloren gegangen ist und in ” ** ” übersetzt wurde … Die Antwort sollte nicht der Text sein, den Sie sehen. Da ist der fette Abschlag.

    – Miguel

    31. August 2017 um 15:07 Uhr

  • Behoben, @miguel, tut mir leid

    – Marcos Perez Gude

    5. September 2017 um 9:28 Uhr

1647265448 693 Festlegen der PHP Standardcodierung auf UTF 8
ontananza

Bei der htaccess Ebene (.htaccess-Datei), sollte die PHP-Direktive sein php_value default_charset UTF-8.

1647265449 546 Festlegen der PHP Standardcodierung auf UTF 8
Benutzer7232321

Um es zu lösen, habe ich “UTF-8” in “UTF-8” (ohne Bindestrich) geändert und stattdessen das Problem gelöst.

Es war auf CentOS.

  • Was meinst du mit “ohne Bindestrich”? Sie sehen gleich aus.

    – Peter Mortensen

    5. März um 23:38 Uhr

  • Was meinst du mit “ohne Bindestrich”? Sie sehen gleich aus.

    – Peter Mortensen

    5. März um 23:38 Uhr

1001810cookie-checkFestlegen der PHP-Standardcodierung auf UTF-8

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy