Un 4x4 de caractère !

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Un 4x4 de caractère !

Message par Ollivier »

Salut, à l'instant je suis tombé sur une discussion anglophone, et je souhaite la partager.

Ça concerne les caractères et leur traitement.

Pour illustrer brièvement, je vais schématiser les caractères par leur taille d'occupation en mémoire.

1 octet c'est ça :Une case à peu près carré. Ça sera l'unité.

Au début, il y avait l'ASCII et l'UTF-8.

Un caractère ASCII: Un caractère UTF8:

Code : Tout sélectionner

[ ] 1 octet d'occupation
OU
[ ][ ][ ] 3 octets d'occupation
OU (mais ça devient beaucoup plus rare)
[ ][ ][ ][ ][ ] 5 octets d'occupation
etc...
(1 + 2N octets)

Puis on a l'UNICODE et l'UTF-16.

Un caractère UNICODE:

Code : Tout sélectionner

[ ][ ]
Un caractère UTF-16:

Code : Tout sélectionner

[ ][ ]
OU
[ ][ ][ ][ ][ ][ ]
OU plusseux, mais on va dire qu'on s'en tamponne.
Donc 2 + 4N octets

La discussion est

Et STARGÅTE semble avoir posté (il y a 6 ans) une solution assez souple ici

Libre à vous de choisir quelle solution vous semble la plus utile. En tout cas, ces solutions vous donnent les fonctions de chaîne de base réécrites pour apréhender un peu les diverses formes d'occupation mémoire que peut prendre un caractère.
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: Un 4x4 de caractère !

Message par Fig »

Merci pour ce rappel très clairement expliqué ! :P
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Un 4x4 de caractère !

Message par boddhi »

Merci pour l'info.

Dommage que certaines foncions de la lib RegularExpression ne gèrent pas correctement toutes ces considérations.
Ce qui rend, par exemple, quasi impossible l'extraction de données sur des pages internet lorsqu'elles sont encodées en UTF-8 et que certains caractères ont un codage 'surrogate'...
Répondre