PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache2 und das unbeliebte Charset



Seiten : [1] 2

phpkiller
20.05.09, 21:13
Hallo Leute,

wieder muss ich mich melden und wieder muss ich wegen Apache2 nörgeln :D.

Ich hab ein Problem mit dem Anzeigen von Sonderzeichen wie ü ö ä.

Jedoch tritt das bei uns nur im Forum auf. Auf der Hauptseite nicht. Ich hab schon versucht den Charset nach Latin und nach UTF-8 zu ändern doch das brachte herzlich wenig.

Immoment ist DefaultCharset auf none.

Was kann ich tun?

phpkiller

marce
20.05.09, 21:29
steht was im Quellcode der Seite? Was liefert der Apache denn konkret aus? (z.B. mit httpLiveHeaders, Debug-Ausgabe von curl/wget, ... kontrollieren)

... und was heißt konkret "Probleme mit Sonderzeichen"?

phpkiller
20.05.09, 21:50
Konkret mein ich: Halt Sonderzeichen was soll ich konkret meinen . Sorry aber ich versteh jetzt nicht was du genau von mir hören möchtest.

Live Headers sagen : Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Aber das scheint unwichtig zu sein denn auf unserer Hauptseite gibt er genau das selbe aus und es gibt keine Probleme

marce
20.05.09, 22:00
... und wie sehen die Sonderzeichen aus? Grün, blau, chinesisch, ...?

Accept-Charset ist leider uninteressant - content-type wäre aussagekräftiger...

phpkiller
20.05.09, 22:15
Okay also nochmal:
Ich hab ein Problem mit dem Anzeigen von Sonderzeichen wie ü ö ä. . :D

Content-Type: text/html; charset=utf-8

Trotz Utf-8 wird das Ü als ? angezeigt

marce
20.05.09, 22:15
und wie ist der Client eingestellt? Welchen File-Type haben die Files auf der Platte?

phpkiller
20.05.09, 22:37
Wie meinst du das ?

marce
20.05.09, 22:42
öhm, so wie ich es schreibe?

Man kann den Client so einstellen, daß er mit einem festen Charset arbeitet, egal was der Webserver ausliefert oder eben so, daß er die Einstellung des Webservers übernimmt.

Manchmal hängt's auch zusätzlich noch von der Codierung der Dateien auf der Festplatte ab - da kann viel hin und her gespielt werden...

Jigsore
20.05.09, 23:22
Probier diverse Charsets im vHost aus, z.b.


AddDefaultCharset UTF-8

Irgendeins von den drei Standardcharsets wird schon funktionieren ;)

phpkiller
21.05.09, 15:25
Also ich hab jetzt UTF-8 und ISO-8859-1 probiert geholfen hat es nicht

Herr Bert
21.05.09, 22:21
Mit
file -i findest du z.B. den Zeichensatz der Datei heraus.
Manchmal musst du da ein wenig rumjonglieren mit Datei, Dateiinhalt (HTML-Tag) und Webserver-Zeichensatz.
Mit iconv z.B. kannst du Zeichensätze umwandeln.

phpkiller
21.05.09, 23:29
Hmmm...


index.php: text/plain; charset=us-ascii


Was bedeutet das für meine AddDefaultCharset Direktive?

EDIT: Kann ich AddDefaultCharset auch mit <Directory> verwenden?

marce
22.05.09, 06:54
Die Doku hat dazu eine recht festgelegte Meinung...

phpkiller
22.05.09, 14:13
Gut und welches Charset soll ich jetzt einstellen oder besser gefragt welchen Möglichkeiten hab ich?

zyrusthc
22.05.09, 19:45
Jedoch tritt das bei uns nur im Forum auf. Auf der Hauptseite nicht. Ich hab schon versucht den Charset nach Latin und nach UTF-8 zu ändern doch das brachte herzlich wenig
Benutzt das Forum vielleicht mysql? Vielleicht liegt da der Fehler?!

Greeez Oli

fubar
22.05.09, 19:48
Hi,

welches charset benutzt denn die Db des Forums? Was steht im conf.d-Verzeichnis?

regards
fubar

phpkiller
22.05.09, 20:03
Ja, charset ist utf8-general_ci. Aber das Problem tritt auch in Datenbank unbeteiligten Stellen auf z.B "Foren-?bersicht"

Wene
22.05.09, 20:38
Tritt das Problem eigentlich mit allen Browsern unter allen Betriebssystemen auf oder nur mit bestimmten?

Ausserdem würde es möglicherweise helfen wenn Du etwas gesprächiger wärst was die eingesetzte Software betrifft. (Forensoftware? Hauptseite? Serversystem?)

phpkiller
22.05.09, 20:46
Also ich benutze Orion v2 (phpBB Derivat) unter Debian 5.0 mit dem Browser Firefox. Das Problem besteht unter allen Browsern

Wene
22.05.09, 21:04
Was steht denn in den Meta- Tags wenn Du Dir den Seitenquelltext im Browser anzeigen lässt? Und zwar in jenen der richtig und der falsch angezeigten Seite.

Zeigen alle Browser ein "?" anstelle der Umlaute oder werden auch andere Zeichen eingesetzt?


unter Debian 5.0 mit dem Browser Firefox. Das Problem besteht unter allen Browsern

Ist Debian 5 das Serversystem oder der Client? Was verstehst Du unter "alle Browser"? Ich möchte Dich bitten Deine Beobachtungen etwas ausführlicher zu beschreiben.

UzumakiNaruto
22.05.09, 21:15
was steht den im html quelltext???


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


wäre nicht schlecht ;)

phpkiller
22.05.09, 21:19
Also Ganz ausführlich : Ich besitze einen Server mit dem Betriebssystem Debian 5.0 (Lenny). Ich benutze (Client) den Firefox als Browser. Wenn ich den Internet Explorer benutze tritt genau dasselbe Problem auf (mit den nicht angezeigten ü ä ö...)


Zeigen alle Browser ein "?" anstelle der Umlaute oder werden auch andere Zeichen eingesetzt?

Firefox zeigt ein ? an , Internet Explorer irgendein komisches Zeichen (nicht beschreibbar).


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


Keine Besserung.

Was kann ich tun?

Wene
22.05.09, 21:40
Aus meiner Glaskugel interpretiere ich dass Du Windows 98 auf dem Client einsetzt. Eine korrekte Information fehlt von Dir immer noch.



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



Hast Du das jetzt von Deinem Vorposter abgeschrieben oder woher kommt diese Zeile? Ausserdem habe ich nach den Zeilen aus zwei verschiedenen Seiten gefragt. Es dürfen ausserdem auch ruhig ein paar zusätzliche Headerzeilen sein damit wir uns ein Bild davon machen können.


Keine Besserung.

Was hast Du denn getan dass sich etwas bessern sollte? Ich hatte lediglich um Informationen gebeten. Die Hilfe erfolgt danach.


Was kann ich tun?

Die angeforderten Infos liefern.

Muss man Dir wirklich jede Information aus der Nase Ziehen?

phpkiller
22.05.09, 21:45
Also ich benutze Windows XP

Komplette Header Zeile


<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link rel="top" href="./index.php?sid=0492e3b762635535f69283faa6f196b4" title="Foren-�bersicht" />
<link rel="search" href="./search.php?sid=0492e3b762635535f69283faa6f196b4" title="Suchen" />
<link rel="help" href="./faq.php?sid=0492e3b762635535f69283faa6f196b4" title="FAQ" />
<link rel="author" href="./memberlist.php?sid=0492e3b762635535f69283faa6f196b 4" title="Mitgliederliste" />
<link rel="alternate" type="application/rss+xml" title="Foren News" href="http://white-dimension.de/forum/rdf.php?fid=1&count=6">
<link rel="alternate" type="application/rss+xml" title="Letzte Themen" href="http://white-dimension.de/forum/rdf.php?count=6">


<link rel="stylesheet" href="templates/cback/cback.css" type="text/css" />



<script type="text/javascript">
<!--
var S_SID = '0492e3b762635535f69283faa6f196b4';
var ajax_core_defined = 0;
var phpbb_root_path = './';
var phpEx = 'php';
var POST_FORUM_URL = 'f';
var POST_TOPIC_URL = 't';
var POST_POST_URL = 'p';
var ajax_page_charset = 'iso-8859-1';
//-->
</script>

<script type="text/javascript" src="ajax/ajax_core.js"></script>


<script language="JavaScript" type="text/javascript">
<!--
function notes()
{
window.open("notes.php", "_notes", "width=800,height=600,scrollbars,resizable=yes");
}
//-->
</script>


<link rel="stylesheet" href="templates/cback/bbc_box.css" type="text/css">
<script language="javascript" src="templates/bbc_box/fade.js" type="text/javascript"></script>


</head>


also ich hatte vorher ISO-8859-1 dort stehen und habe es nach utf-8 abgewandelt das meinte ich mit "Keine Besserung".


Muss man Dir wirklich jede Information aus der Nase Ziehen?

Tja ich bin auch nicht Olga mit der Glaskugel und weiss nicht was ihr immer wollt :) .

Wene
22.05.09, 22:06
Tja ich bin auch nicht Olga mit der Glaskugel und weiss nicht was ihr immer wollt :) .

Na genau darum stell ich ja ausführliche Fragen. So z.B. nach den Header Zeilen von der falsch und der richtig dargestellten Seite.

phpkiller
22.05.09, 22:37
Achso einen Moment bitte :


<head>
<base href="http://white-dimension.de/site/" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="robots" content="index, follow" />
<meta name="keywords" content="" />
<meta name="description" content="White-Dimension.de" />
<meta name="generator" content="Joomla! 1.5 " />
<title>White-Dimension.de :: Kostenloses und Werbefreies Hosting</title>

<link href="/site/index.php?format=feed&amp;type=rss" rel="alternate" type="application/rss+xml" title="RSS 2.0" />
<link href="/site/index.php?format=feed&amp;type=atom" rel="alternate" type="application/atom+xml" title="Atom 1.0" />
<script type="text/javascript" src="/site/media/system/js/mootools.js"></script>
<script type="text/javascript" src="/site/media/system/js/caption.js"></script>


<link rel="stylesheet" href="/site/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="/site/templates/siteground-j15-65/css/template.css" type="text/css" />

<!--[if lte IE 6]>
<link rel="stylesheet" href="/site/templates/siteground-j15-65/css/ie7.css" type="text/css" />
<![endif]-->

</head>

Wene
22.05.09, 23:36
Na also, geht doch. So kann man sich gleich mal selbst ein Bild machen...

Also in Deinem Forenheader steht


<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
[...]
var ajax_page_charset = 'iso-8859-1';


Erkennst Du den Unterschied?


also ich hatte vorher ISO-8859-1 dort stehen und habe es nach utf-8 abgewandelt das meinte ich mit "Keine Besserung".

Wie hast Du das geändert? In der Konfiguration des Forums oder direkt im Quelltext?

Wenn man sich die Seite in ISO-8859-1 ansieht wird sie korrekt dargestellt. Du musst also entweder dafür sorgen dass die verwendete Codierung der Seite im Header übermittelt wird oder dass die Seite in der angegebenen Codierung vorliegt.

phpkiller
23.05.09, 13:41
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link rel="top" href="./index.php?sid=0492e3b762635535f69283faa6f196b4" title="Foren-�bersicht" />
<link rel="search" href="./search.php?sid=0492e3b762635535f69283faa6f196b4" title="Suchen" />
<link rel="help" href="./faq.php?sid=0492e3b762635535f69283faa6f196b4" title="FAQ" />
<link rel="author" href="./memberlist.php?sid=0492e3b762635535f69283faa6f196b 4" title="Mitgliederliste" />
<link rel="alternate" type="application/rss+xml" title="Foren News" href="http://white-dimension.de/forum/rdf.php?fid=1&count=6">
<link rel="alternate" type="application/rss+xml" title="Letzte Themen" href="http://white-dimension.de/forum/rdf.php?count=6">


<link rel="stylesheet" href="templates/cback/cback.css" type="text/css" />



<script type="text/javascript">
<!--
var S_SID = '0492e3b762635535f69283faa6f196b4';
var ajax_core_defined = 0;
var phpbb_root_path = './';
var phpEx = 'php';
var POST_FORUM_URL = 'f';
var POST_TOPIC_URL = 't';
var POST_POST_URL = 'p';
var ajax_page_charset = 'utf-8';
//-->
</script>

<script type="text/javascript" src="ajax/ajax_core.js"></script>


<script language="JavaScript" type="text/javascript">
<!--
function notes()
{
window.open("notes.php", "_notes", "width=800,height=600,scrollbars,resizable=yes");
}
//-->
</script>


<link rel="stylesheet" href="templates/cback/bbc_box.css" type="text/css">
<script language="javascript" src="templates/bbc_box/fade.js" type="text/javascript"></script>


</head>


Tja ... jetzt sieht das so aus und gebracht hat es nichts.


Wie hast Du das geändert? In der Konfiguration des Forums oder direkt im Quelltext?

Im Quelltext stand vorher :


<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

Und hab es nach :


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

Geändert , also im Quelltext ;)

Wene
23.05.09, 14:29
Geändert , also im Quelltext ;)

Genau das hatte ich befürchtet! :ugly:

Wenn eine Textdatei - und dazu gehören auch HTML und PHP Dateien - in einer bestimmten Codierung auf der Festplatte des Servers liegen, ändert sich diese Codierung nicht nur weil Du die Headerzeilen verstümmelst. Du müsstest dazu auch die Dateien selbst umwandeln.

Die einfachere Lösung wäre es vermutlich, die unterschiedlichen Codierungen zuzulassen und dafür zu sorgen dass Apache diese bei der Auslieferung richtig deklariert.

Möglicherweise gibt es dafür auch eine Einstellung im jeweiligen Script selbst. Immerhin ist PHP in der Lage, HTTP Header zu überschreiben.

Die Veränderung des Quellcodes führt sicher nie zum Erfolg und würde auch von jedem Update wieder zunichte gemacht.

phpkiller
23.05.09, 22:23
Die einfachere Lösung wäre es vermutlich, die unterschiedlichen Codierungen zuzulassen und dafür zu sorgen dass Apache diese bei der Auslieferung richtig deklariert.


Wie mach ich das?


Die Veränderung des Quellcodes führt sicher nie zum Erfolg und würde auch von jedem Update wieder zunichte gemacht.

Trotzdem sollte es eigentlich temporär funktionieren. Aber egal bleiben wir bei meiner Frage.