我想获取文件中的字符数。我所说的字符是指“真实”字符,而不是字节。假设我知道文件编码。
我尝试使用mbstowcs()
但它不起作用,因为它使用系统语言环境(或使用 setlocale 定义的语言环境)。因为 setlocale 不是线程安全的,所以我认为在调用mbstowcs()
. 即使它是安全的,我也必须确保我的程序不会在调用之间“跳转”(信号等)setlocale()
(一个调用将其设置为文件的编码,并在调用时恢复到上一个)。
因此,举个例子,假设我们有一个使用俄罗斯编码(例如 KOI8)编码的文件ru.txt 。所以,我想打开文件并获取字符数,假设文件的编码是 KOI8。
如果mbstowcs()
可以source_encoding
争论,那就太容易了……
编辑:使用的另一个问题mbstowcs()
是必须在系统上安装与文件编码相对应的语言环境......