Thread Datei auf UTF-8 prüfen, wie? (4 answers)
Opened by rinoin at 2007-05-16 20:09

nepos
 2007-05-16 21:58
#76738 #76738
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo du!

Habs selbst noch nie gebraucht, aber soweit ich die Man-Page verstehe, sollte das in etwa so gehen:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/perl

use strict;
use warnings;
use Encode::Guess;

my $file = "c:\deine\datei";
my $data;

# Datei öffnen
open(FILE, '<', $file)
  or die "Fehler beim Öffnen von $file : $!\n";

# Zeilen-Trenner quasi auf undef setzen, damit kannst du die komplette Datei in einen Skalar lesen - siehe perldoc perlvar unter INPUT_RECORD_SEPARATOR
{
  local $/;
  $data = <FILE>;
}

close(FILE);

# Das Modul die Kodierung erraten lassen, wobei du sagst, dass du nur UTF-8 haben willst.
my $decoder = guess_encoding($data, qw/utf8/);

# Falls Encode::Guess eine Referenz zurückgibt, scheint es sich um UTF-8 zu handeln
if (ref $decoder) {
  print "Datei scheint in UTF-8 vorzuliegen\n";
}
else {
  print "Datei scheint kein UTF-8 zu sein.\n";
}


Ich hoffe mal, das passt so halbwegs. Habs nur mal auf die Schnelle runtergetippt, ohne was zu testen.

Edit: Hab den Type bei "use warnings;" mal gefixt.\n\n

<!--EDIT|nepos|1179348604-->

View full thread Datei auf UTF-8 prüfen, wie?