Ich verwende ein Hosting-Unternehmen und es listet die Dateien in einem Verzeichnis auf, wenn die Datei index.html
nicht vorhanden ist. Es verwendet ISO-8859-1 als Standardcodierung.
Wenn der Server Apache ist, gibt es eine Möglichkeit, stattdessen UTF-8 als Standard festzulegen?
Update: Außerdem habe ich herausgefunden, dass tatsächlich ein DOCTYPE von HTML 3.2 verwendet wird und es dann überhaupt keinen Zeichensatz gibt ... also wird keine Codierung festgelegt. Aber gibt es eine Möglichkeit, UTF-8 zu verwenden?
apache
character-encoding
apache-config
Unpolarität
quelle
quelle
/etc/apache2/conf-available/charset.conf
Fügen Sie dies zu Ihrem hinzu
.htaccess
:Wenn Sie über Administratorrechte verfügen, können Sie diese global festlegen, indem Sie Folgendes bearbeiten
httpd.conf
und hinzufügen:(Sie können auch
AddDefaultCharset
in verwenden.htaccess
, dies hat jedoch keine Auswirkungen auf von Apache generierte Verzeichnislisten.)quelle
.htaccess
kann dies auch alle Unterverzeichnisse betreffen. Wahrscheinlich sucht Apache nach.htaccess
dem übergeordneten Verzeichnis bis zum Stammverzeichnis des Website-Ordners.htaccess
funktioniert das auf allen Servern - es betrifft auch alle Unterverzeichnisse. Von Apache generierte Verzeichnislisten-Seiten können jedoch nicht mithilfe von.htaccess
(AFAIK) zu UTF-8 gezwungen werden ..htaccess
Dateien im Allgemeinen eine schlechte Praxis ist. Es wird schwieriger, Fehler zu verfolgen, wenn die Servereinstellungen auf verschiedene Dateien verteilt sind. Es gibt auch einen leichten Leistungseinbruch: Bei jeder angeforderten Datei muss Apache die.htaccess
Datei des Verzeichnisses und alle.htaccess
Dateien der übergeordneten Verzeichnisse lesen ..htaccess
sollte daher nur für verzeichnisspezifische Einstellungen verwendet werden (z. B. Verhindern des Zugriffs auf ein bestimmtes Verzeichnis) oder wenn absolut keine Möglichkeit besteht, Administratorrechte zu erlangen.Siehe AddDefaultCharset-Direktive , AddCharset-Direktive und diesen Artikel .
quelle
Platzieren
AddDefaultCharset UTF-8
in/etc/apache2/conf.d/charset
. Tatsächlich ist es schon da. Sie müssen es nur auskommentieren, indem Sie das vorhergehende entfernen#
.quelle
/etc/apache2/conf.d/charset
. Es ist eine benutzerdefinierte Include-Datei Ihrer Distribution. Wie jede andere Datei, die nicht isthttpd.conf
./etc/apache2/conf-enabled/charset.conf
auf meiner Distribution (Ubuntu 16.4). Auch hat nicht funktioniert.Fügen Sie in .htaccess diese Zeile hinzu:
Dies ist für diejenigen gedacht, die keinen Zugriff auf die conf-Datei ihres Servers haben. Es ist nur noch eine Sache zu versuchen, wenn andere Versuche fehlgeschlagen sind.
Was Leistungsprobleme bei der Verwendung von .htaccess betrifft, habe ich dies nicht gesehen. Meine typischen Ladezeiten für Seiten sind 150-200 ms mit oder ohne .htaccess
Was nützt die Leistung, wenn Ihre Seite nicht richtig gerendert wird? Die meisten gemeinsam genutzten Server erlauben dem Benutzer keinen Zugriff auf die Konfigurationsdatei, die der bevorzugte Ort zum Hinzufügen eines Zeichensatzes ist.
quelle
.htaccess
Dateien verwenden, starten Sie jetzt nicht. Es gibt Leistungs- und Verwaltungsgründe, warum dies eine schlechte Idee (tm) istIch bin nicht sicher, ob Sie Zugriff auf die Apache-Konfiguration (httpd.conf) haben, aber Sie sollten in der Lage sein, eine AddDefaultCharset-Direktive festzulegen. Sehen:
http://httpd.apache.org/docs/2.0/mod/core.html
Suchen Sie nach dem Modul mod_mime.c und stellen Sie sicher, dass Folgendes festgelegt ist:
oder die entsprechenden Apache 1.x-Dokumente ( http://httpd.apache.org/docs/1.3/mod/core.html#adddefaultcharset ).
Dies funktioniert jedoch nur, wenn "der Inhaltstyp der Antwort text / plain oder text / html ist".
Sie sollten auch sicherstellen, dass auf Ihren Seiten auch ein Zeichensatz festgelegt ist. Weitere Informationen finden Sie hier:
http://www.w3.org/TR/REC-html40/charset.html
quelle
Dies ist ungetestet, wird aber wahrscheinlich funktionieren.
Fügen Sie in Ihre .htaccess-Datei Folgendes ein:
Dies erfordert jedoch mod_headers auf dem Server.
quelle
<Files>
Tags einwickeln .Der Vollständigkeit halber finden Sie unter Apache2 unter Ubuntu den Standardzeichensatz in charset.conf in conf-available.
Kommentieren Sie die Zeile aus
quelle
Da sich alle HTML-Dateien in UTF-8 befinden und keine Meta-Tags für den Inhaltstyp haben, konnte ich nur den erforderlichen Standard für das Senden dieser Dateien durch Apache 2.4 festlegen, indem ich beide Anweisungen hinzufügte:
quelle
Nur ein Hinweis, wenn Sie in utf-8 lange Dateinamen haben: Standardmäßig werden diese auf 20 Byte gekürzt, sodass es vorkommen kann, dass das letzte Zeichen "halbiert" und daher nicht richtig erkannt wird. Dann möchten Sie möglicherweise Folgendes einstellen:
IndexOptions Charset=UTF-8 NameWidth=*
NameWidth
Durch die Einstellung wird verhindert, dass Ihre Dateinamen gekürzt werden, sodass sie ordnungsgemäß angezeigt und lesbar sind.Wie andere Benutzer bereits erwähnt haben, sollte dies entweder in
httpd.conf
oderapache2.conf
(wenn Sie Administratorrechte haben) oder in.htaccess
(wenn Sie dies nicht tun) hinzugefügt werden .quelle
Lass es einfach leer:
'default_charset' in WHM :::::: default_charset =''
ps - In WHM gehen Sie --------) Startseite »Dienstkonfiguration» PHP-Konfigurationseditor ----) Klicken Sie auf 'Erweiterter Modus' ----) Suchen Sie 'default_charset' und lassen Sie es leer ---- nur nichts, nicht utf8, nicht ISO
quelle
In meinem Fall zu .htaccess hinzufügen
quelle