Thread [Tk] File auswählen unicode (31 answers)
Opened by welle at 2013-11-01 20:07

guest Welle
 2013-11-07 08:37
#171879 #171879
Das sollte allerdings beweisen, dass das PRoblem bei DBD::SQLite ist:
Code: (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
use strict;
use warnings;
use feature qw( say );

use Tk;
use Data::Dumper;
use Encode;
use Encode qw(is_utf8);
use DBD::SQLite;

my $mw; # main window
$mw = MainWindow->new();
$mw->bind( '<Visibility>' => sub {openfile()} );
MainLoop();
exit;

sub openfile{
my $initfile = $mw->getOpenFile;
return unless $initfile;
say "initfile $initfile";
say 'Dumper: ', Dumper($initfile);
my $isutf8 = is_utf8($initfile);
say "utf8 flag of initfile is ", $isutf8 ? 'on' : 'off';
if ($isutf8) {
say ' contains well-formed UTF-8: ', is_utf8($initfile, 1) ? 'ja' : 'nein';
}

$initfile = encode('iso-8859-1', $initfile, Encode::FB_CROAK);
say "initfile $initfile";
say 'Dumper: ', Dumper($initfile);
$isutf8 = is_utf8($initfile);
say "utf8 flag of initfile is ", $isutf8 ? 'on' : 'off';
if ($isutf8) {
say ' contains well-formed UTF-8: ', is_utf8($initfile, 1) ? 'ja' : 'nein';
}

#connecting to sqlite
#my $dbh = DBI->connect("dbi:SQLite:$initfile", "", "", { RaiseError => 1, AutoCommit => 1, PrintError => 0 });
#opening txt file
open( my $SUDO, '<', $initfile ) or die("can't open $initfile: $!");
say "opened $initfile";
my @game = <$SUDO>;
say "game\n", @game;
close($SUDO);
return;
}

Nun, wenn ich die Datenbank aufmachen als ob sie eine Text-Datei wäre (genau mit dem Skript oben), diese wird korrekt geöffnet und im Shell ausgegeben. Wenn ich aber die Zeile nach "connecting to sqlite" zum Code einfüge...dann wird keine Anbindung zur Datenbank möglich sein. Die Kodierung des Path bleibt ja gleich. Das sollte doch demonstrieren, dass das Problem beim Modul BDB::SQLite ist, oder?
Außerdem: wenn ich den gleichen Code statt unter Windows 8 (64 bit) auf Windows 7 (64 bit) laufen lasse...dann funktioniert alles prima, auch mit dem Verbinden der Datenbank...
Ich vermute, ich muss einfach aufgeben...
Last edited: 2013-11-07 09:29:05 +0100 (CET)

View full thread [Tk] File auswählen unicode