|
我写一个程序(纯c语言,终端模拟器下使用)读取一个目录下面的文件和子目录的名字。因为屏幕显示宽度有限,有时候不能显示整个文件名,所以输出的时候必须对文件名的长度进行裁减。但是对于含有中文字符的文件名,裁减不当可能会出现乱码。
例如,某个目录含有以下文件/子目录:
----------------------------------------
linux情景分析
程序设计原理教程
算法导论
----------------------------------------
现在假设显示宽度只有8个字符位置,每个文件名用 char name[512]的字符串存储,那么对于第二个文件,只需要令name[8]=0,然后简单的puts(name)就可以了,但是对于第一个文件,这么做就会出现乱码,谁能告诉我如何获取系统的字符编码方式,然后根据编码的特征来调整断字的位置?
或者谁有更好的解决这个问题的方法,请不吝赐教。
谢谢 |
|