charset in HTML5

Hier können allgemeine Fragen zu HTML und CSS gestellt und diskutiert werden.
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

charset in HTML5

Beitrag von dutch »

Hallo zusammen,

ich habe mal eine allgemeine Frage zu den Zeichensätzen.
In HTML 5 wird als Standard scheinbar von UTF-8 ausgegangen (hat man was anderes im Dokument stehen, bekommt man vom W3C-validator eine Fehlermeldung.)

Dummerweise bekomme ich immer Schwierigkeiten mit Sonderzeichen, wenn ich UTF-8 im Dokument angebe...
Was ja wohl vermutlich bedeutet, dass die Datenbank kein UTF ausliefert, wenn ich richtig informiert bin?
Da dies bei mir so gut wie immer passiert, unabhängig vom Provider, scheint wohl das charset iso-8859-1, was Datenbanken angeht, immer noch der Standard zu sein.

Meine Frage ist also: Ist das echt so und falls ja, kann mir jemand sagen warum :?:
HTML5 ist doch jetzt schon ne ganze Weile etabliert...

Übrigens kann ich das Problem nicht einmal mit Entities umgehen, da der CPO-Editor die direkt wieder umwandelt...

Gruß,
dutch
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Hm, ich denke, wenn in die Datenbank UTF8 geschrieben würde, würde sie das auch ausliefern :-)

Aber tatsächlich dürfte dem das ConPresso-Backend im Wege stehen.

Spricht etwas dagegen, dass du deine HTML5-Website wie folgt beginnen lässt?

Code: Alles auswählen

<!DOCTYPE html>
<html lang="de-DE">
  <head>
    <meta charset="iso-8859-15"/>
Günther Ludwig
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Beitrag von dutch »

Hi Mr. Magpie,

das habe ich jetzt auch so gemacht.
Der validator meckert dann zwar immer noch ein bisschen aber zählt das nicht als echten error :wink:

Trotzdem kapiere ich das mit der Datenbank und den Zeichensätzen noch nicht so ganz... Ich dachte, dass wäre eine Datenbankeinstellung, was ausgeliefert wird? Oder nicht?

Gruß,
dutch
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7360
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Tja, ich kapiere es auch nicht und habe es noch nie hingekriegt irgendwas wirklich als UTF-8 auszuliefern.

Was spielt da rein:
  • Apache-Einstellung
  • Meta-Tag
  • Verbindung PHP-MySQL
  • Tabellen-Kollation (latin-1 per Default)
  • Codierung der Dateien selbst (alle CPO-Dateien sind ANSI, also kein UTF-8)
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Beitrag von dutch »

Das Seltsamste daran finde ich ja noch, dass UTF-8 doch eigentlich alle Zeichen von iso-8859-1 enthalten sollte, nur eben noch wesentlich mehr.

Warum wird dann iso-8859-1 nicht einfach bei allen Einstellungen/Konfigurationen über Bord geworfen? 8)
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 01:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

Weil bei Unicode auch "Multi-Character" Zeichen enthalten sein können. Das sind Sonderzeichen, die aus mehr als einem Zeichen bestehen. Wer schon mal mit Unicode gearbeitet hat, kennt das Ã% oder so ähnlich.

Da ConPresso noch für ältere PHP-Versionen geschrieben wurde, werden an verschiedenen Stellen Funktionen benutzt, die noch nicht mit diesen Multi-Character Zeichen klarkommen. Da werden dann Trennungen mitten in so einem Zeichen vorgenommen oder die Anzahl von gezählten Buchstaben sind höher, weil ein solches Zeichen als mehrere gezählt wird.

Das Thema ist ziemlich komplex und weil es auch nicht oder nur mit Problemen möglich sein wird, alte Versionen zu aktualisieren, haben wir das bisher vermieden.
Bartels.Schöne
ConPresso Support & Development
dscho
ConPresso-Newbie
Beiträge: 1
Registriert: 19.09.2014 20:19
Hat sich bedankt: 1 Mal

Beitrag von dscho »

Um die Seite UTF-8 kodiert auszugeben, könnte man in
_include/parser.php
den replacer utf-8 encodieren

Code: Alles auswählen

//dirty hack
$replacer=array_map("utf8_encode",$replacer);
Allerdings verbietet sich leider eigentlich der Einsatz von html5,
da man keine valide Seite erzeugen kann, da conpresso veraltete tags
wie <strike> und <font> benutzt.

Ich beschäftige mich erst seit kurzem mit conpresso
und bin begeistert von den Möglichkeiten, die es bietet.
Nur die Einschränkung der Zeichenkodierung
und die Verwendung nicht mehr standardkonformen htmls sind sehr bedauerlich.
Wird sich das noch ändern?

edit:
bei Verwendung von mod_editor wird zumindest von tinyMCE
html5-gerechter Code ausgegeben. (Die anderen habe ich nicht getestet.)
Benutzeravatar
fruity
ConPresso-Newbie
Beiträge: 9
Registriert: 11.11.2015 14:44

Beitrag von fruity »

Mr. Magpie hat geschrieben:Hm, ich denke, wenn in die Datenbank UTF8 geschrieben würde, würde sie das auch ausliefern :-)

Aber tatsächlich dürfte dem das ConPresso-Backend im Wege stehen.

Spricht etwas dagegen, dass du deine HTML5-Website wie folgt beginnen lässt?

Code: Alles auswählen

<!DOCTYPE html>
<html lang="de-DE">
  <head>
    <meta charset="iso-8859-15"/>
Mal kurz eine Zwischenfrage...Kann man das Script so übernehmen und auf seiner Seite einbetten? Beschäftige mich gerade mit der Websitegestaltung und habe soeben auch auf der 1&1 Seite eine De-Mail eingerichtet, da ich diese unbedingt brauche. Kenne mich mit HTML5 noch nicht allzu gut aus daher die Frage...
Nur das Genie findet sich im Chaos zurecht.
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Was meinst du denn jetzt mit Script? Den von dir zitierten Code-Schnipsel?

Ja, kannste :)
Günther Ludwig
Benutzeravatar
fruity
ConPresso-Newbie
Beiträge: 9
Registriert: 11.11.2015 14:44

Beitrag von fruity »

Ja genau...
Nur das Genie findet sich im Chaos zurecht.
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

PHP 5.6

Beitrag von dutch »

Hallo zusammen,

ich mache diesen alten thread nochmal auf, weil ich durch die Umstellung verschiedener Provider auf PHP 5.6 langam nicht mehr weiß, wie ich die Sonderzeichen korrekt ausgeben soll.

Ich habe es schon mit den verschiendenen metatag-Varianten (ISO und UTF-8 ) versucht aber ohne Erfolg.

Da scheinbar PHP. 5.6 bei den Providern jetzt mehr oder weniger Standard ist, müsste man wohl ConPresso auch mal dazu bringen UTF-8 zu verwenden.

Gibt es irgendeinen workaround, um meine CPO installationen jetzt kurzfristig dazu zu bringen korrekte Sonderzeichen auszugeben?

Gruß,
dutch

EDIT:
Habe eben festgestellt, dass neue Einträge auf der Website mit korrekten Sonderzeichen dargestellt werden...
Jetzt verstehe ich noch weniger... :?
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7360
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Wenn der Provider die PHP.ini nicht für Anpassungen freigibt, dann setze ich bei PHP 5.6 ans Ende der common.inc.php die Zeilen

Code: Alles auswählen

// force ISO
header('Content-type: text/html; charset=ISO-8859-1'); 
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Externer RSS feed

Beitrag von dutch »

Hallo,

ich habe den Tipp von MarkusR angewendet und der funktioniert prima!
Nochmal danke!

Allerdings habe ich jetzt ein RSS-feed in die Seite integriert und bei der Ausgabe werden nun doch wieder die Sonderzeichen zerhauen...

Die XML-Datei des RSS feed verwendet vermutlich UTF-8.
Allerdings habe ich im RSS Integrationsscript, das ich verwende
(MagpieRSS: https://github.com/kellan/magpierss#description) gesehen, dass dort 'output_encoding' auf iso-8859-1 steht, darum dachte ich, sollte doch gehen, nur leider.... eben nicht.

Hat jemand eine Idee, wie ich das hinbekommen kann?
Danke.

Gruß,
dutch
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7360
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Die XML-Datei des RSS feed verwendet vermutlich UTF-8.
Vermutlich reicht nicht.
Entweder es steht drin oder Dein Editor sagt es Dir.

Ansonsten geht der Parser von UTF-8 aus. So steht es zumindest im Code.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Beitrag von dutch »

Ja, in der XML Datei steht:

Code: Alles auswählen

<?xml version="1.0" encoding="utf-8"?>
Aber im Magpie script steht, dass das Standard-Ausgabeformat dies ist:

Code: Alles auswählen

$output_encoding='ISO-8859-1'
Oder übersehe ich da was Entscheidendes?? :shock:

Gruß,
dutch
Antworten