Korzystam z firmy hostingowej i wyświetli listę plików w katalogu, jeśli pliku index.html
tam nie ma, używa standardowego kodowania iso-8859-1.
Jeśli serwer to Apache, czy można zamiast tego ustawić UTF-8 jako domyślny?
Aktualizacja: Dodatkowo dowiedziałem się, że faktycznie używa DOCTYPE w HTML 3.2, a potem w ogóle nie ma zestawu znaków ... więc nie ustawia żadnego kodowania. Ale czy istnieje sposób, aby to zmienić, aby używać UTF-8?
apache
character-encoding
apache-config
brak biegunowości
źródło
źródło
/etc/apache2/conf-available/charset.conf
Dodaj to do
.htaccess
:Lub, jeśli masz uprawnienia administratora, możesz ustawić je globalnie, edytując
httpd.conf
i dodając:(Możesz też użyć
AddDefaultCharset
in.htaccess
, ale nie wpłynie to w ten sposób na listy katalogów generowane przez Apache).źródło
.htaccess
może mieć wpływ również na wszystkie podkatalogi, prawdopodobnie Apache będzie szukał dowolnego.htaccess
katalogu nadrzędnego aż do katalogu głównego folderu witryny.htaccess
działa na wszystkich serwerach - wpływa to również na wszystkie podkatalogi. Jednak stron z listą katalogów generowanych przez Apache nie można wymusić na UTF-8 przy użyciu.htaccess
(AFAIK)..htaccess
plików jest ogólnie złą praktyką. Błędy stają się trudniejsze do śledzenia, gdy ustawienia serwera są rozmieszczone w różnych plikach. Występuje również niewielki spadek wydajności: przy każdym żądanym pliku Apache musi odczytać.htaccess
plik katalogu i wszystkie.htaccess
pliki katalogów nadrzędnych..htaccess
dlatego powinny być używane tylko do ustawień specyficznych dla katalogu (np. uniemożliwianie dostępu do określonego katalogu) lub wtedy, gdy nie ma absolutnie możliwości uzyskania uprawnień administratora.Zobacz dyrektywę AddDefaultCharset , dyrektywę AddCharset , a ten artykuł .
źródło
Umieść
AddDefaultCharset UTF-8
w/etc/apache2/conf.d/charset
. W rzeczywistości już tam jest. Musisz tylko usunąć komentarz, usuwając poprzedni#
.źródło
/etc/apache2/conf.d/charset
. Jest to niestandardowy plik dołączany przez twoją dystrybucję. Jak każdy inny plik, który nie jesthttpd.conf
./etc/apache2/conf-enabled/charset.conf
na mojej dystrybucji (Ubuntu 16.4). Również nie działał.W .htaccess dodaj tę linię:
To jest dla tych, którzy nie mają dostępu do pliku konfiguracyjnego swojego serwera. To jeszcze jedna rzecz, którą należy spróbować, gdy inne próby zawiodły.
Jeśli chodzi o problemy z wydajnością dotyczące korzystania z .htaccess, nie widziałem tego. Moje typowe czasy ładowania strony to 150-200 ms z lub bez .htaccess
Jaka jest korzyść z wydajności, jeśli Twoja strona nie renderuje się poprawnie. Większość serwerów współdzielonych nie zezwala użytkownikom na dostęp do pliku konfiguracyjnego, który jest preferowanym miejscem dodawania zestawu znaków.
źródło
.htaccess
plików, nie zaczynaj teraz. Istnieją powody wydajnościowe i administracyjne, dla których jest to zły pomysł (tm)Nie jestem pewien, czy masz dostęp do konfiguracji Apache (httpd.conf), ale powinieneś móc ustawić dyrektywę AddDefaultCharset. Widzieć:
http://httpd.apache.org/docs/2.0/mod/core.html
Poszukaj modułu mod_mime.c i upewnij się, że ustawiono:
lub równoważne dokumenty Apache 1.x ( http://httpd.apache.org/docs/1.3/mod/core.html#adddefaultcharset ).
Jednak działa to tylko wtedy, gdy „typ zawartości odpowiedzi to tekst / zwykły lub tekst / html”.
Powinieneś także upewnić się, że Twoje strony również mają ustawiony zestaw znaków. Zobacz to, aby uzyskać więcej informacji:
http://www.w3.org/TR/REC-html40/charset.html
źródło
To nie jest testowane, ale prawdopodobnie zadziała.
W swoim pliku .htaccess umieść:
Będzie to jednak wymagało mod_headers na serwerze.
źródło
<Files>
metki.Dla kompletności, w Apache2 na Ubuntu, domyślny zestaw znaków znajdziesz w charset.conf w conf-available.
Odkomentuj linię
źródło
Tam, gdzie wszystkie pliki HTML są w UTF-8 i nie mają metatagów dla typu zawartości, mogłem tylko ustawić wymagane domyślne, aby te pliki były wysyłane przez Apache 2.4, dodając obie dyrektywy:
źródło
Tylko wskazówka, jeśli masz długie nazwy plików w utf-8: domyślnie zostaną one skrócone do 20 bajtów, więc może się zdarzyć, że ostatni znak zostanie „przecięty na pół” i przez to nie zostanie poprawnie rozpoznany. Następnie możesz ustawić następujące opcje:
IndexOptions Charset=UTF-8 NameWidth=*
NameWidth
ustawienie zapobiegnie skracaniu nazw plików, dzięki czemu będą poprawnie wyświetlane i czytelne.Jak już wspominali inni użytkownicy, należy to dodać w
httpd.conf
lubapache2.conf
(jeśli masz uprawnienia administratora) lub w.htaccess
(jeśli nie masz).źródło
Po prostu zostaw to puste:
'default_charset' in WHM :::::: default_charset =''
ps - W WHM go --------) Strona główna »Konfiguracja usługi» Edytor konfiguracji PHP ----) kliknij „Tryb zaawansowany” ----) znajdź „default_charset” i pozostaw go pustym ---- po prostu nic, nie utf8, nie ISO
źródło
W moim przypadku dodaj do .htaccess
źródło