计算UTF-8文件中的字符

时间:2013-11-08 06:04:27

标签: bash unix encoding utf-8 wc

wc -c

似乎只做一个愚蠢的字节数,而不是解释关于编码的实际字符。

如何获得实际字符数?

2 个答案:

答案 0 :(得分:8)

使用-m--chars选项。

例如(text文件包含两个韩文字符和换行符):

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

根据wc(1)

   -c, --bytes
          print the byte counts

   -m, --chars
          print the character counts

答案 1 :(得分:1)

不要混淆字符,char和字节。一个字节长度为8位,-c计算文件中的字节,无论你输入什么。许多编程语言中的char也是8位长,这就是为什么计数字节使用-c!如果要计算文件中给定字母表的字符数(字符数),则需要以某种方式指定使用了哪种字符编码,有时候,编码对字符使用多于一个字节。阅读wc手册,它会告诉您-m将使用您当前的区域设置(大致是您的语言/字符集首选项)来解码文件并计算您的字符数。