Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6067[/thread]

Sonderzeichen ersetzen: ASCII zu HTML



<< |< 1 2 >| >> 15 Einträge, 2 Seiten
root
 2004-02-09 16:15
#79977 #79977
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Hallo!!! - Es gibt mich noch :-)

Ich bekomme txt-Dateien von einem anderen PC, da sind dann lauter kleine schwarze Vierecke im Text wo z.B. ein Anführungszeichen unten hin soll.

Wie bekomme ich dieses Zeichen zu fassen?

Ich möchte einen RE haben, der z.B. ASCII 65 durch A ersetzt.

Und ich möchte die Codenummer des Vierecks rausbekommen...

Danke im Voraus für die Hilfe!

LG root
havi
 2004-02-09 16:42
#79978 #79978
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Klingt nach einem Umlautproblem.

Dafuer gibt es eine Menge Module.

Schau mal auf CPAN...

Gruss
Relais
 2004-02-09 17:01
#79979 #79979
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
<!--pod_f1--><a href="//www.perldoc.com/perl5.8.0/pod/func/chr.html" target="_blank">perldoc <!--pod_f2-->-f chr<!--pod_f3--></a><!--pod_f4-->
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming
root
 2004-02-09 18:19
#79980 #79980
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Haaa! War ja klar das der Röderbergweg wieder bescheid weiß...

Hab mir das gebastelt, als eigentlich hab ich mal mit einem anderen ganz bestimmten aus dem Röderbergweg sowas ähnliches gebastelt und dieses davon abgeleitet.
- Hab den Copyrightbeitrag gelesen - :)

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
	my %ascii2htmlReplacements = (
chr(225) => '&szlig;', # ß
chr(132) => '&auml;', # ä
chr(148) => '&ouml;', # ö
chr(129) => '&uuml;', # ü
chr(142) => '&Auml;', # Ä
chr(153) => '&Ouml;', # Ö
chr(154) => '&Uuml;', # Ü
chr(000) => '&bdquo;', # " unten
chr(000) => '&sbquo;', # '
chr(150) => '&ndash;', # Gedankenstrich
);

# replace ascii-special chars with ansi
foreach (keys %ascii2htmlReplacements) {
$htmlcode =~ s/\Q$_\E/$ascii2htmlReplacements{$_}/ge;
}


Wie ihr seht fehlen mir da noch einige Nümmerchen! Wo bekomme ich die her?
root
 2004-02-09 18:26
#79981 #79981
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Mann man man! Das ist ja richtig aufregend!

132 ist ja gar nicht ä - das ist ja &bdquo;
ptk
 2004-02-09 19:06
#79982 #79982
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=root,09.Feb..2004, 17:19]Wie ihr seht fehlen mir da noch einige Nümmerchen! Wo bekomme ich die her?[/quote]
HTML::Entities verwenden!
root
 2004-02-09 19:56
#79983 #79983
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
OK, damit bekomme ich dann falsche Zuordnungen raus.

Code: (dl )
1
2
3
use HTML::Entities ();
$encoded = HTML::Entities::encode($a);
$decoded = HTML::Entities::decode($a);


Aber wie komme ich an die Sonderzeichen ran?

Ich habe eine Textdatei. Mal angenommen ich weiß darin könnten " unten und " oben drin sein. Dann kann ich also mit den oben sethenden Varianten einfach sagen ersetze das durch den HTML-Code.
Nun ist aber auch noch ein Gedankenstrich drin, ohne dass ich es weiß. - Wie finde ich die Zeichen von denen ich nicht glaube dass sie drin sind?

Ich glaub ich steh heute auf dem Schlauch!
ptk
 2004-02-09 20:28
#79984 #79984
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
In welchem Encoding arbeitest du? Windows-12xx oder utf-8? Je nachdem musst du zuerst nach utf-8 oder wenigstens iso-8859-1 konvertieren bevor du HTML::Entities verwenden kannst.
root
 2004-02-09 20:43
#79985 #79985
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Die Dateien schieben ganz verschiedene User auf den Server. Man kann also davon ausgehen, dass sie gar nicht codiert sind...

Ich glaube ich nehme einfach ein paar gängige Zeichen in meine RE-Lösung auf und gut ist!
Dubu
 2004-02-09 23:09
#79986 #79986
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Gar nicht geht nicht. :)

Irgendwie muessen ja die Bytes bzw. Bytefolgen irgendwelchen Zeichen ("characters") zugeordnet werden, und das nennt man Encoding. Dass diese Zuordnung eben nicht ueberall gleich ist, wird fuer dich zum Problem. Eigentlich muesste jeder Benutzer sogar zu seiner Datei sagen, in welcher Kodierung sie erstellt wurde, damit du eine korrekte Umwandlung in deinen Zielzeichensatz machen kannst. Ohne diese Information kannst du nur raten.

Zur weiteren Lektuere:
http://selfhtml.teamone.de/inter/sprache.htm
http://selfhtml.teamone.de/inter/zeichensaetze.htm
http://czyborra.com/charsets/codepages.html (momentan leider nicht erreichbar)
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2004-02-09 16:15.