Englishfrançaisespagnol

Icône de favori OnWorks

perlunitut - En ligne dans le Cloud

Exécutez perlunitut dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande perlunitut qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks à l'aide de l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


perlunitut - Tutoriel Perl Unicode

DESCRIPTION


L'époque où l'on jetait simplement des ficelles est révolue. Il est bien établi que la modernité
les programmes doivent être capables de communiquer des lettres accentuées amusantes, et des choses comme l'euro
symboles. Cela signifie que les programmeurs ont besoin de nouvelles habitudes. Il est facile de programmer compatible Unicode
logiciel, mais il faut de la discipline pour le faire correctement.

Il y a beaucoup à savoir sur les jeux de caractères et les encodages de texte. Il est probablement préférable de
passer une journée entière à apprendre tout cela, mais les bases peuvent être apprises en quelques minutes.

Ce ne sont pas les bases mêmes, cependant. On suppose que vous connaissez déjà la différence
entre les octets et les caractères, et réalisez (et acceptez !) qu'il existe de nombreux
jeux de caractères et encodages, et que votre programme doit être explicite à leur sujet.
La lecture recommandée est "Le minimum absolu de chaque développeur de logiciels absolument,
Positively Must Know About Unicode and Character Sets (No Excuses!)" par Joel Spolsky, à
<http://joelonsoftware.com/articles/Unicode.html>.

Ce tutoriel parle en termes plutôt absolus, et ne fournit qu'une vue limitée de la
la richesse des fonctionnalités liées aux chaînes de caractères que Perl a à offrir. Pour la plupart des projets,
cette information suffira probablement.

Définitions
Il est important de mettre quelques choses au clair en premier. C'est la partie la plus importante de ce
Didacticiel. Cette vue peut entrer en conflit avec d'autres informations que vous avez pu trouver sur le
web, mais c'est surtout parce que de nombreuses sources sont fausses.

Vous devrez peut-être relire toute cette section plusieurs fois...

Unicode

Unicode est un jeu de caractères avec de la place pour beaucoup de caractères. La valeur ordinale d'un
le personnage est appelé un code point. (Mais en pratique, la distinction entre le point de code
et le caractère est flou, de sorte que les termes sont souvent utilisés de manière interchangeable.)

Il y a beaucoup, beaucoup de points de code, mais les ordinateurs fonctionnent avec des octets, et un octet a de la place pour
seulement 256 valeurs. Unicode a beaucoup plus de caractères que cela, vous avez donc besoin d'une méthode pour faire
ces accessibles.

Unicode est encodé à l'aide de plusieurs encodages concurrents, dont UTF-8 est le plus utilisé. Dans
un codage Unicode, plusieurs octets suivants peuvent être utilisés pour stocker un seul point de code, ou
simplement : caractère.

UTF-8

UTF-8 est un encodage Unicode. Beaucoup de gens pensent que Unicode et UTF-8 sont la même chose,
mais ils ne le sont pas. Il y a plus d'encodages Unicode, mais une grande partie du monde a standardisé
sur UTF-8.

UTF-8 traite les 128 premiers points de code, 0..127, de la même manière que l'ASCII. Ils ne prennent qu'un octet
par caractère. Tous les autres caractères sont codés sur deux à quatre octets à l'aide d'un complexe
schème. Heureusement, Perl gère cela pour nous, nous n'avons donc pas à nous en soucier.

Texte instruments à cordes (personnage chaînes)

Texte instruments à cordes, ou caractère instruments à cordes sont faits de personnages. Les octets ne sont pas pertinents ici, et
les encodages aussi. Chaque personnage n'est que cela : le personnage.

Sur une chaîne de texte, vous feriez des choses comme :

$texte =~ s/foo/bar/;
si ($string =~ /^\d+$/) { ... }
$texte = ucfirst $text;
my $character_count = longueur $text;

La valeur d'un caractère ("ord", "chr") est le point de code Unicode correspondant.

binaire instruments à cordes (octet chaînes)

binaire instruments à cordes, ou octet instruments à cordes sont constitués d'octets. Ici, vous n'avez pas de personnages, juste
octets. Toutes les communications avec le monde extérieur (tout ce qui est en dehors de votre Perl actuel
processus) se fait en binaire.

Sur une chaîne binaire, vous feriez des choses comme :

my (@length_content) = unpack "(V/a)*", $binary;
$binaire =~ s/\x00\x0F/\xFF\xF0/; # pour les courageux :)
imprime {$fh} $binaire ;
my $byte_count = longueur $binary ;

Codage

Codage (comme verbe) est la conversion de texte à binaire. Pour encoder, vous devez fournir
l'encodage cible, par exemple "iso-8859-1" ou "UTF-8". Certains encodages, comme le
plage "iso-8859" ("latin"), ne prend pas en charge la norme Unicode complète ; des personnages qui
ne peuvent pas être représentés sont perdus dans la conversion.

Le décryptage

Le décryptage est la conversion de binaire à texte. Pour décoder, il faut savoir quel encodage
a été utilisé pendant la phase d'encodage. Et surtout, ce doit être quelque chose de décodable. Ce
n'a pas beaucoup de sens pour décoder une image PNG en une chaîne de texte.

Interne le format

Perl a un interne le format, un encodage qu'il utilise pour encoder des chaînes de texte afin qu'il puisse
les stocker en mémoire. Toutes les chaînes de texte sont dans ce format interne. En fait, les chaînes de texte
ne sont jamais dans un autre format !

Vous ne devriez pas vous soucier de ce qu'est ce format, car la conversion se fait automatiquement
lorsque vous décodez ou encodez.

Votre nouvelle Boîte à outils
Ajoutez à votre en-tête standard la ligne suivante :

utiliser Encode qw (encoder décoder);

Ou, si vous êtes paresseux, il suffit de :

utiliser Encoder ;

I / O flux (les présenter 5 minute Didacticiel)
Le flux d'entrée/sortie typique d'un programme est :

1. Recevoir et décoder
2. Processus
3. Encodage et sortie

Si votre entrée est binaire et est censée rester binaire, vous ne devriez pas la décoder en un
chaîne de texte, bien sûr. Mais dans tous les autres cas, vous devriez le décoder.

Le décodage ne peut pas se produire de manière fiable si vous ne savez pas comment les données ont été codées. Si vous arrivez à
choisir, c'est une bonne idée de standardiser sur UTF-8.

my $foo = decode('UTF-8', get 'http://example.com/');
my $bar = decode('ISO-8859-1', readline STDIN);
mon $xyzzy = decode('Windows-1251', $cgi->param('foo'));

Le traitement se déroule comme vous le saviez auparavant. La seule différence est que vous utilisez maintenant
caractères au lieu d'octets. C'est très utile si vous utilisez des choses comme "substr", ou
"longueur".

Il est important de réaliser qu'il n'y a pas d'octets dans une chaîne de texte. Bien sûr, Perl a
son encodage interne pour stocker la chaîne en mémoire, mais ignorez-le. Si vous devez faire
quoi que ce soit avec le nombre d'octets, il est probablement préférable de déplacer cette partie à l'étape 3, juste
après avoir encodé la chaîne. Vous savez alors exactement combien d'octets il y aura dans le
chaîne de destination.

La syntaxe pour coder des chaînes de texte en chaînes binaires est aussi simple que le décodage :

$body = encode('UTF-8', $body);

Si vous aviez besoin de connaître la longueur de la chaîne en octets, c'est le moment idéal pour cela.
Parce que $body est maintenant une chaîne d'octets, "length" rapportera le nombre d'octets, au lieu de
le nombre de caractères. Le nombre de caractères n'est plus connu, car les caractères
n'existent que dans les chaînes de texte.

my $byte_count = longueur $body;

Et si le protocole que vous utilisez prend en charge un moyen de faire savoir au destinataire quel
l'encodage de caractères que vous avez utilisé, aidez le destinataire en utilisant cette fonctionnalité ! Pour
Par exemple, E-mail et HTTP prennent en charge les en-têtes MIME, vous pouvez donc utiliser l'en-tête "Content-Type".
Ils peuvent également avoir "Content-Length" pour indiquer le nombre de octets, ce qui est toujours un
bonne idée de fournir si le nombre est connu.

"Type de contenu : text/plain ; charset=UTF-8",
"Contenu-Longueur : $byte_count"

RÉSUMÉ


Décodez tout ce que vous recevez, encodez tout ce que vous envoyez. (S'il s'agit de données textuelles.)

Q et A (ou FAQ)


Après avoir lu ce document, vous devriez lire aussi perlunifaq, puis perluniintro.

REMERCIEMENTS


Merci à Johan Vromans de Squirrel Consultancy. Ses coups de gueule UTF-8 lors de l'Amsterdam
Les réunions de Perl Mongers m'ont intéressé et déterminé à découvrir comment utiliser le caractère
encodages en Perl d'une manière qui ne se brise pas facilement.

Merci à Gerard Goossen de TTY. Sa présentation "UTF-8 in the wild" (Dutch Perl
Workshop 2006) m'a inspiré pour publier mes réflexions et écrire ce tutoriel.

Merci aux personnes qui ont posé des questions sur ce genre de choses dans plusieurs canaux IRC Perl, et
m'ont constamment rappelé qu'une explication plus simple était nécessaire.

Merci aux personnes qui ont révisé ce document pour moi, avant qu'il ne soit rendu public. Ils sont:
Benjamin Smith, Jan-Pieter Cornet, Johan Vromans, Lukas Mai, Nathan Gray.

Utilisez perlunitut en ligne en utilisant les services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

  • 1
    Téléchargeur d'images
    Téléchargeur d'images
    Explorer et télécharger des images à l'aide de
    Sélénium Utilisation de python3 et PyQt5.
    Moteur de recherche pris en charge : Google, Bing,
    Baidu. Saisie des mots-clés au clavier
    ou entrée de ...
    Télécharger le téléchargeur d'images
  • 2
    Plugin Eclipse Tomcat
    Plugin Eclipse Tomcat
    Le plugin Eclipse Tomcat fournit
    intégration simple d'une servlet Tomcat
    conteneur pour le développement de java
    des applications Web. Vous pouvez nous rejoindre pour
    discussion...
    Télécharger le plug-in Eclipse Tomcat
  • 3
    WebTorrent Desktop
    WebTorrent Desktop
    WebTorrent Desktop est pour le streaming
    torrents sur Mac, Windows ou Linux. Ce
    se connecte à la fois à BitTorrent et
    Pairs WebTorrent. Maintenant il n'y a pas
    faut attendre...
    Télécharger WebTorrent Desktop
  • 4
    GenX
    GenX
    GenX est un programme scientifique pour affiner
    réflexivité aux rayons X, neutrons
    réflectivité et rayons X de surface
    données de diffraction utilisant le différentiel
    algorithme d'évolution....
    Télécharger GenX
  • 5
    pspp4windows
    pspp4windows
    Le PSPP est un programme de statistiques
    analyse des données échantillonnées. C'est gratuit
    remplacement du programme propriétaire
    SPSS. PSPP dispose à la fois de texte et
    graphique nous...
    Télécharger pspp4windows
  • 6
    Extensions Git
    Extensions Git
    Git Extensions est un outil d'interface utilisateur autonome
    pour la gestion des référentiels Git. Ça aussi
    s'intègre à l'explorateur Windows et
    Microsoft Visual Studio
    (2015/2017/2019). E...
    Télécharger les extensions Git
  • Plus "

Commandes Linux

Ad