Thread match anhand von unicode control code (10 answers)
Opened by miwieg at 2018-01-14 13:05

Gast wer
 2018-01-14 14:28
#187907 #187907
hast du den string als UTF-8 aus der datei gelesen oder nur als "RAW" string:

open(my $fh, '<:encoding(UTF-8)', $file) vs. open(my $fh, '<', $file)

Um ein Match mit "\x{263a}" machen zu können muss perl den String dekodiert haben. Das macht man entwder beim laden mit ":encoding(...)" oder später mit dem Modul "Encode".

Beispiel(ungetestet):
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
-!/usr/bin/perl
use strict;
use warnings;

open(my $fh, '<:encoding(UTF-8)', './test.txt') or die($!);
while(my $line = <$fh>){
  if($line=~/\x{263a}/) {
    print "gefunden\n";
  }
}


Wenn du die UTF-8 Zeichen direkt in den code setzen willst muss du use utf8; benutzten um perl mitzuteilen der das der Code selber UTF-8 kodiert ist.
Last edited: 2018-01-14 16:06:20 +0100 (CET)

View full thread match anhand von unicode control code