【发布时间】:2013-11-08 06:04:26
【问题描述】:
wc -c
似乎只做一个哑字节计数,不解释有关编码的实际字符。
我怎样才能得到实际的字符数?
【问题讨论】:
-
我编辑了您的问题以澄清您正在寻找字符数,而不是
wc -c给您的字节数。如果这不是您的意思,请随意回滚编辑...
标签: bash unix encoding utf-8 wc
wc -c
似乎只做一个哑字节计数,不解释有关编码的实际字符。
我怎样才能得到实际的字符数?
【问题讨论】:
wc -c 给您的字节数。如果这不是您的意思,请随意回滚编辑...
标签: bash unix encoding utf-8 wc
使用-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
【讨论】:
不要混淆字符、chars 和字节。一个字节是 8 位长,-c 计算文件中的字节数,无论你放入什么。许多编程语言中的 char 也是 8 位长,这就是为什么计算字节数使用 -c!如果要计算文件中有多少给定字母表的字符(字符),则需要以某种方式指定使用了哪种字符编码,有时,该编码使用的字符不止一个字节.阅读wc 的手册,它会告诉您-m 将使用您当前的语言环境(大致是您的语言/字符集首选项)来解码文件并计算您的字符数。
【讨论】: