Zeichenkonvertierung

Zeichenkonvertierung

am 11.10.2005 11:08:01 von u-mohren

Hallo,

Ich habe folgendes Problem:

In meiner Datenbank stehen eine Menge Texte die ich einfach für das Internet
übernommen habe.

In diesen Texten "Anführungszeichen unten". Diese werden natürlich beim
Validieren angemeckert. Ich könnte jetzt natürlich eine Funktion erstellen
die Jedes einzelne Zeichen darauf prüft ob gerade ein "Anführungszeichen
unten" vorliegt und dieses dann durch ein "Anführungszeichen oben" ersetzt.
Das kann aber keine saubere Lösung sein.

Wie Codiere ich den MS-Word zeichensatz so um das dieser Internetkonform
dargestellt wird.

Vielen Dank im Vorraus

Ulrich

Re: Zeichenkonvertierung

am 11.10.2005 11:14:42 von u-mohren

Entschuldigt den Absender, ich habs gesehen und korrigiert. Hier noch mal
mit Realname.

Gruss Ulrich
"news@arcor.de" schrieb im Newsbeitrag
news:434b80cc$0$16491$9b4e6d93@newsread4.arcor-online.net...
> Hallo,
>
> Ich habe folgendes Problem:
>
> In meiner Datenbank stehen eine Menge Texte die ich einfach für das
Internet
> übernommen habe.
>
> In diesen Texten "Anführungszeichen unten". Diese werden natürlich beim
> Validieren angemeckert. Ich könnte jetzt natürlich eine Funktion erstellen
> die Jedes einzelne Zeichen darauf prüft ob gerade ein "Anführungszeichen
> unten" vorliegt und dieses dann durch ein "Anführungszeichen oben"
ersetzt.
> Das kann aber keine saubere Lösung sein.
>
> Wie Codiere ich den MS-Word zeichensatz so um das dieser Internetkonform
> dargestellt wird.
>
> Vielen Dank im Vorraus
>
> Ulrich
>
>

Re: Zeichenkonvertierung

am 11.10.2005 14:25:45 von Martin Honnen

news@arcor.de wrote:

> Wie Codiere ich den MS-Word zeichensatz so um das dieser Internetkonform
> dargestellt wird.

Eventuell hilft es
header('Content-Type: text/html; charset=Windows-1252');
am Anfang der Ausgabe an den Browser zu schicken. So halt die Zeichen,
die du aus der Datenbank liest, so
kodiert sind.
Word kann aber sicher auch Unicode-Zeichen enthalten. Wie die dann in
deiner Datenbank kodiert sind (UTF-8, UTF-16) bzw. an PHP uebergeben
werden, laesst sich nicht erraten.



--

Martin Honnen
http://JavaScript.FAQTs.com/

Re: Zeichenkonvertierung

am 11.10.2005 15:40:19 von u-mohren

Also ich versuche das nochmal präziser.
Text kommt aus Word. Die Texte werden mit copy&paste in ein selectfeld
eingetragen.
Dann in eine MySql Datenbank geschrieben.
Beim validieren der Seite in der der Text ausgeleden wird,
moniert w3c an den Stellen Fehler, an denen Anführungszeichen stehen

Header ist xhtml strict. Nach möglichkeit soll das auch so bleiben.

Ich sehe zwei Ansätze, die Zeichen umzucoden beim schreiben in die DB oder
beim auslesen.
So nun fehlt mir aber das Wissen darum wie man es macht.

Gruss Ulrich



"Martin Honnen" schrieb im Newsbeitrag
news:434baf49$0$16488$9b4e6d93@newsread4.arcor-online.net...
>
> news@arcor.de wrote:
>
>> Wie Codiere ich den MS-Word zeichensatz so um das dieser Internetkonform
>> dargestellt wird.
>
> Eventuell hilft es
> header('Content-Type: text/html; charset=Windows-1252');
> am Anfang der Ausgabe an den Browser zu schicken. So halt die Zeichen, die
> du aus der Datenbank liest, so
> kodiert
> sind.
> Word kann aber sicher auch Unicode-Zeichen enthalten. Wie die dann in
> deiner Datenbank kodiert sind (UTF-8, UTF-16) bzw. an PHP uebergeben
> werden, laesst sich nicht erraten.
>
>
>
> --
>
> Martin Honnen
> http://JavaScript.FAQTs.com/

Re: Zeichenkonvertierung

am 11.10.2005 18:17:23 von Ulf Kadner

Ulrich Mohren wrote:

> Text kommt aus Word. Die Texte werden mit copy&paste in ein selectfeld
> eingetragen.
> Dann in eine MySql Datenbank geschrieben.
> Beim validieren der Seite in der der Text ausgeleden wird,

"Eine Seite in der Text ausgelesen wird"? Von was sprichst Du jetzt?

> moniert w3c an den Stellen Fehler, an denen Anführungszeichen stehen

Dann trage doch sorge dafuer, das dort nur zulaessige Zeichen stehen.
Ersetze halt je nach Bedarf die "unbeliebten" Zeichen. String-Funktionen
gibts ja genug dazu im Manual. Wenn der Validator die Quotes bemaengelt
nimm halt ein passendes Char-Set (hat aber in dem Fall nix mit PHP zu
tun) oder ersetze die Quotes mit ihren HtmlEntity

> Ich sehe zwei Ansätze, die Zeichen umzucoden beim schreiben in die DB oder
> beim auslesen.

Welche denn? Wenn Du wissen willst wie Du diese umsetzt, solltest Du
diese vieleich erst mal zum Besten geben. :-)

Ganz wichtig fuer Dich ist das hier (bitte lesen und anwenden!):
http://learn.to/quote

MfG, Ulf

Re: Zeichenkonvertierung

am 11.10.2005 18:38:40 von Martin Honnen

Ulrich Mohren wrote:


> Text kommt aus Word. Die Texte werden mit copy&paste in ein selectfeld
> eingetragen.

Ein selectfeld? Was ist das? In welcher Applikation befindet sich das?
In HTML gibt es ja -Control im
Browser funktioniert sicher nicht.

> Dann in eine MySql Datenbank geschrieben.

Wodurch, durch PHP?

> Beim validieren der Seite in der der Text ausgeleden wird,
> moniert w3c an den Stellen Fehler, an denen Anführungszeichen stehen
>
> Header ist xhtml strict. Nach möglichkeit soll das auch so bleiben.

Das hindert dich nicht daran, per HTTP Header ein charset angegeben, wie
schon vorgeschlagen.
XHTML strict ist ja nur ein Dokument-Typ.

> Ich sehe zwei Ansätze, die Zeichen umzucoden beim schreiben in die DB oder
> beim auslesen.
> So nun fehlt mir aber das Wissen darum wie man es macht.

PHP bietet
http://www.php.net/iconv
http://www.php.net/mbstring
fuer Konvertierungen zwischen verschiedenen Kodierungen.

Dann gibt es auch noch
http://www.php.net/htmlentities
Das braucht man aber nur, so man charset nicht setzt oder aber eines
benutzt, in dem dann gewisse Zeichen nicht darstellbar sind.


Aber das nuetzt dir nur, wenn du die derzeitige Kodierung kennst.

--

Martin Honnen
http://JavaScript.FAQTs.com/

Re: Zeichenkonvertierung

am 11.10.2005 19:51:13 von u-mohren

Jaja ich weiss schon, das sind Zeichen zunehmender Veralzheimerung :)
muss es heissen.

Mein Boss nimmt den Text, kopiert den ins Clipboard und pastet den dann in
ein Textfeld. Von dort wird der Text dann in eine MySql Datenbank übetragen.
Wenn ich den Text dann mit einer PHP- Seite wieder aus der Datenbank hole,
sind die MS-Wordkonformen Anführungszeichen noch drin.

Mit htmlentities() bekomme ich die nicht Internetkonform.

Ich glaube so ist es jetzt richtig.

MfG Ulrich



"Martin Honnen" schrieb im Newsbeitrag
news:434bea91$0$24159$9b4e6d93@newsread4.arcor-online.net...
>
>
> Ulrich Mohren wrote:
>
>
>> Text kommt aus Word. Die Texte werden mit copy&paste in ein selectfeld
>> eingetragen.
>
> Ein selectfeld? Was ist das? In welcher Applikation befindet sich das? In
> HTML gibt es ja -Control im
> Browser funktioniert sicher nicht.
>
>> Dann in eine MySql Datenbank geschrieben.
>
> Wodurch, durch PHP?
>
>> Beim validieren der Seite in der der Text ausgeleden wird,
>> moniert w3c an den Stellen Fehler, an denen Anführungszeichen stehen
>>
>> Header ist xhtml strict. Nach möglichkeit soll das auch so bleiben.
>
> Das hindert dich nicht daran, per HTTP Header ein charset angegeben, wie
> schon vorgeschlagen.
> XHTML strict ist ja nur ein Dokument-Typ.
>
>> Ich sehe zwei Ansätze, die Zeichen umzucoden beim schreiben in die DB
>> oder
>> beim auslesen.
>> So nun fehlt mir aber das Wissen darum wie man es macht.
>
> PHP bietet
> http://www.php.net/iconv
> http://www.php.net/mbstring
> fuer Konvertierungen zwischen verschiedenen Kodierungen.
>
> Dann gibt es auch noch
> http://www.php.net/htmlentities
> Das braucht man aber nur, so man charset nicht setzt oder aber eines
> benutzt, in dem dann gewisse Zeichen nicht darstellbar sind.
>
>
> Aber das nuetzt dir nur, wenn du die derzeitige Kodierung kennst.
>
> --
>
> Martin Honnen
> http://JavaScript.FAQTs.com/

Re: Zeichenkonvertierung

am 12.10.2005 10:04:04 von Fabian Schladitz

Ulrich Mohren schrieb:
> Jaja ich weiss schon, das sind Zeichen zunehmender Veralzheimerung :)
> muss es heissen.

> Mein Boss nimmt den Text, kopiert den ins Clipboard und pastet den dann=
in=20
> ein Textfeld. Von dort wird der Text dann in eine MySql Datenbank übe=
tragen.=20

Machst du dort mysql_real_escape_string()? Sonst haut dein Chef dir=20
irgendwann die Datenbank kaputt. Nur so als Tipp.

> Wenn ich den Text dann mit einer PHP- Seite wieder aus der Datenbank ho=
le,=20
> sind die MS-Wordkonformen Anführungszeichen noch drin.

Es gibt keine "MS-Wordkonformen Anführungszeichen". IMHO könnte sogar=
=20
Word verschiedene Charsets unterstützen. Aber zumindest liegt es am=20
Charset und nicht an der Applikation.

Wie Martin schon sagte, hast du viele Möglichkeiten innerhalb von PHP=20
für die Konvertierung deiner Daten aus einem Charset in ein Andres zu=20
sorgen. Du kannst aber auch deiner MySQL-Datenbank mitteilen, sie möge =

dir nur Daten eines bestimmten Charsets schicken - z.B. UTF8.

Wie du das tust, kannst du im Manual und sicherlich auch bei Google=20
Groups nachlesen.

> Mit htmlentities() bekomme ich die nicht Internetkonform.
^^^^^^^^^^^^^^^^
Was ist das denn? O_o Wusste nicht, dass sich das "Internet" um Sachen=20
kümmert, welche über der IP-Ebene liegen.

> Ich glaube so ist es jetzt richtig.

Sagen wir, du hast dich besser ausgedrückt. Aber bitte beachten=20
http://learn.to/quote

[TOFU kostenpflichtig entsorgt. Bitte überweisen Sie die übliche=20
Pauschale an mein nicht angegebenes Konto.]

--=20
HTH,
Fabian