Thread Hilfe bei charset und use utf8 (10 answers)
Opened by bianca at 2014-07-09 19:10

rosti
 2014-07-10 11:12
#176366 #176366
User since
2011-03-19
3276 Artikel
BenutzerIn
[Homepage]
user image
Mit

Code (perl): (dl )
1
2
use utf8;
my $s = 'äöüß';


wird $s zu einer UTF-8-kodierten Zeichenkette (String), wobei die dazugehörigen Bytes als Binary direkt aus Deinem Script glesen werden.

Mit dem Pragma use bytes; nimmst Du Einfluss auf das Verhalten nachfolgender Stringfunktionen, d.h., ein use bytes; schaltet zur Bytesemantic und ein no bytes; schaltet wieder zur Character-Semantic.

Hier ist die Übung:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
use utf8;
my $s = 'äöüß';

say length $s; # 4

use bytes;
say length $s; # 8

no bytes;
say length $s; # 4


Bei Deinen Scripts und eingebundenen Modulen solltest Du stets wissen, wann eine Character- oder Bytesemantic erforderlich ist. Da ich mit nicht sicher bin, wie sich das JSON-Modul diesbezüglich verhält, würde ich vor dem Aufruf der entsprechenden Methoden einfach das Pragma use bytes; setzen und schauen, was passiert.

Wenn ICH unbeding mit JSON arbeiten müsste, würde ich mir mal das Modul JSON näher anschauen. Ansosnten gibt es andere Möglichkeiten, Daten für den Transport so zu verpacken, dass das unabhängig von einer Zeichenkodierung ist (Tags: binary-safe, Lowlevel-Algorithmen http://rolfrost.de/zykl.html ).

View full thread Hilfe bei charset und use utf8