Compter les caractères dans un fichier UTF-8

wc -c 

semble ne faire qu’un décompte stupide, pas interpréter les caractères réels en ce qui concerne l’encodage.

Comment puis-je obtenir le nombre de caractères réel?

Utilisez l’option -m ou --chars .

Par exemple (le fichier text contient deux caractères coréens et la nouvelle ligne):

 falsetru@jmlee12:~$ cat text 안녕 falsetru@jmlee12:~$ wc -c text 7 text falsetru@jmlee12:~$ wc -m text 3 text 

Selon wc(1) :

  -c, --bytes print the byte counts -m, --chars print the character counts 

Ne confondez pas les caractères, les caractères et les octets. Un octet a une longueur de 8 bits, et -c compte les octets de votre fichier, peu importe ce que vous avez mis. Un caractère dans de nombreux langages de programmation est également de 8 bits. C’est pourquoi compter les octets utilise -c ! Si vous voulez compter le nombre de caractères (caractères) d’un alphabet donné que vous avez dans un fichier, vous devez spécifier le codage des caractères utilisés, et parfois, cet encodage utilise plus d’un octet pour un caractère. . Lisez le manuel de wc , il vous dira que -m utilisera votre locale actuelle (approximativement vos préférences de langue / jeu de caractères) pour décoder le fichier et compter vos caractères.