String::Dump - Was genau ist in einem String enthalten

| | Kommentare (1)

Manchmal steckt in einem String nicht das drin, was man erwartet, z.B. nicht druckbare oder UTF Zeichen.

String::Dump - Dump strings of characters (or bytes) for printing and debugging von Nick Patch vereinfacht das Debuggen solcher Probleme erheblich.

Bei Byte-Strings wird jedes Byte, bei Unicode-Strings wird jeder Codepoint ausgegeben.

String::Dump stellt sechs unterschiedliche Ausgabeformate über folgende Funktionen zur Verfügung.

  • dump_hex($string): Hexadecimal (base 16) mode
  • dump_dec($string): Decimal (base 10) mode
  • dump_oct($string): Octal (base 8) mode
  • dump_bin($string): Binary (base 2) mode
  • dump_names($string): Unicode character name mode
  • dump_codes($string): Unicode code point mode

Freunde der Kommandozeile sollten einen Blick auf mitgelieferte Tool dumpstr werfen.

 

Beispiel

Statt vieler Worte ein einfaches Beispiel:

#!/usr/bin/perl
use strict;
use warnings;

use utf8;

use String::Dump qw( :all );

my $string = 'Føø Bār';

print dump_hex($string), "\n";

print dump_dec($string), "\n";

print dump_oct($string), "\n";

print dump_bin($string), "\n";

print dump_names($string), "\n";

print dump_codes($string), "\n";

Das Programm erzeugt folgende Ausgabe:

46 F8 F8 20 42 101 72

70 248 248 32 66 257 114

106 370 370 40 102 401 162

1000110 11111000 11111000 100000 1000010 100000001 1110010

LATIN CAPITAL LETTER F, LATIN SMALL LETTER O WITH STROKE, LATIN SMALL LETTER O WITH STROKE, SPACE, LATIN CAPITAL LETTER B, LATIN SMALL LETTER A WITH MACRON, LATIN SMALL LETTER R

U+0046 U+00F8 U+00F8 U+0020 U+0042 U+0101 U+0072

 

Siehe auch:

 

1 Kommentare

Also check Devel::PeekPoke's describe_bytestring. It is a dumper geared towards spotting addresses and other packed 32/64 bit values in a string.

https://metacpan.org/module/Devel::PeekPoke#describe_bytestring

Jetzt kommentieren

Über diese Seite

Diese Seite enthält einen einen einzelnen Eintrag von Thomas Fahle vom 28.02.13 11:45.

CSS::Compressor - Schnelle und effiziente CSS Komprimierung ist der vorherige Eintrag in diesem Blog.

FLOSS-Weekly Episode 246: Interview mit Jeffrey Thalhammer - Pinto ist der nächste Eintrag in diesem Blog.

Aktuelle Einträge finden Sie auf der Startseite, alle Einträge in den Archiven.

Blog Roll

Powered by

Powered by Movable Type 5.2.10

Creative Commons-Lizenz

Creative Commons License
Dieses Weblog steht unter einer Creative Commons-Lizenz.