Thread Mustererkennung bei Dancer2 und body_parameters (23 answers)
Opened by Max_Perlbeginner at 2016-04-23 14:10

pq
 2016-04-24 13:31
#184585 #184585
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
2016-04-24T10:02:46 Max_Perlbeginner
PS.: der open mode "<:encoding(utf8)" wurde mir im Forum hier empfohlen... Die Dateien dürften aber ohnehin im utf8 Modus vorliegen, weil sie auch im entsprechenden Mode ">:encoding(utf8)" geschrieben wurden... Aber zur Sicherheit öffne ich sie immer auch mit diesem Modus.

Das solltest du nicht nur "zur Sicherheit" mchen, sondern das definiert, in welcher Form die Daten in Variablen eingelesen werden.
"use utf8" gilt nur für Inhalte, die du direkt im Skript definierst.
Mit dem Open-Mode sagst du, dass die Daten automatisch dekodiert werden sollen. Ansonsten müsstest du das manuell machen.

Hier ein lesenswerter Artikel:
https://perlgeek.de/de/artikel/charsets-unicode

Wann immer du unsicher bist, ob die Daten in Variablen dekodiert vorliegen oder nicht, mache folgendes:
Code (perl): (dl )
1
2
use Devel::Peek;
Dump $string;

Du bekommst bei utf8-dekodierten Variablen eine zusätzliche Ausgabe. Einfach mal ausprobieren.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
perl -wE'
use Encode;
use Devel::Peek;
my $string = "ä";
Dump $string;
$string = decode_utf8($string);
Dump $string;'
SV = PV(0xbbca90) at 0xbe2878
REFCNT = 1
FLAGS = (PADMY,POK,IsCOW,pPOK)
PV = 0xbe5530 "\303\244"\0
CUR = 2
LEN = 10
COW_REFCNT = 1
SV = PV(0xbbca90) at 0xbe2878
REFCNT = 1
FLAGS = (PADMY,POK,pPOK,UTF8)
PV = 0xbddf80 "\303\244"\0 [UTF8 "\x{e4}"]
CUR = 2
LEN = 10
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Mustererkennung bei Dancer2 und body_parameters