Thread LWP::UserAgent UTF-8-Mangling die 2991992ste (24 answers)
Opened by Your_name at 2018-10-23 14:29

rosti
 2018-10-25 12:15
#189038 #189038
User since
2011-03-19
3180 Artikel
BenutzerIn
[Homepage]
user image
Danke Dir!

Nun, 5.6, 5.8 und 5.10 waren Meilensteine in der Entwicklung der Unicodeunterstützung. Und ich habe viele Jahre unter 5.6 entwickelt, da war sie bereits hinreichend.

Von daher ja auch meine Empfehlung: Benutze die interne Zeichenkodierung nur dann, wenn das wirklich erforderlich ist.

Im vorliegenden Fall ist sie nicht erforderlich. Sie ist nicht einmal in Sachen MySQL Anbindung erforderlich solange man auf jegliche Collationen verzichtet und keine Stringoperationen in MySQL durchführt.

In MySQL Tabellen die mit Latin getagged sind lassen sich die Binaries UTF-8-kodierter Zeichenketten einwandfrei speichern und auch wiederherstellen, sie benötigen allenfalls mehr Platz.

MfG

PS: Binary in LATIN1 Table, UTF-8 funktioniert da natürlich auch:

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
32
33
use strict;
use warnings;
use dbh;
use IO::File;

my $dbh = (bless{},'main')->dbh('myweb');

$dbh->do(q(
    CREATE TABLE if not exists images(
        id int(32) auto_increment primary key,
        image text
    )CHARSET=Latin1
));
#print $dbh->selectrow_array('SHOW CREATE TABLE images');

# eine Grafik einlesen
my $fh = IO::File->new;
$fh->open('768.jpg', O_BINARY|O_RDONLY) or die $!;
read($fh, my $image, -s $fh);
$fh->close;

# Grafik in MySQL Textfeld einfügen
$dbh->do("INSERT INTO images(image)values(?)", {}, $image);

# Grafik aus MySQL auslesen
my $binary  = $dbh->selectrow_array('SELECT image FROM images WHERE id = (SELECT LAST_INSERT_ID())');

# Grafik zur Kontrolle ausgeben
$fh->open('new.jpg', O_CREAT|O_TRUNC|O_BINARY|O_RDWR) or die $!;
$fh->print($binary);
$fh->close;

$dbh->do('drop table images');


.
Last edited: 2018-10-26 08:27:48 +0200 (CEST)

View full thread LWP::UserAgent UTF-8-Mangling die 2991992ste