这个问题我苦苦思考很久了,一直没有想到有什么解决方案,希望求助于大家的力量 能帮我解决这个难题,非常感谢~~~
时间:2008-06-03 14:17:15
来源:论坛整理 作者: 编辑:chinaitzhe
--
附,抛开GBK编码不说,判定是否为西文字符倒是十分简单,但是对于中国这种双字节编码的文本来说,就很有难度了,因为不能提前遍历,给定的条件就是一个随机的位置,所以有可能出现在读取的当前字节为一个汉字编码的首字节(这样为正确的情况),但也有可能为其尾字节(这样势必出现乱码)。在gb2312中汉字编码都是大于0xA0A0的。
当然折中的办法是可以通过肉眼观察法,发现乱码手动偏移一个位置,但现在我很想讨论下自动校正位置的可能性是否可行,谢谢大家!
网友回复:c扩展函数
_ismbslead,
_ismbstrail
Win API中也有:
IsDBCSLeadByte
用unicode来处理字符串,所有字符都是16位的,汉字就可以区分出
网友回复:用 ftell(fp)取得文件指针位置,判定奇偶,假如是奇数说明是前一半,假如是偶数说明是后一半
网友回复:用 ftell(fp)取得文件指针位置,判定奇偶,假如是奇数说明是前一半,假如是偶数说明是后一半
---------------------------------------------------------------------------------------
有漏洞,譬如:假如前面包含有单个的字符呢?
网友回复:觉得1、2楼结合起来就可以了!
网友回复:请问大虾怎么用unicode来处理字符串?
关键字:这个问题,苦苦,思考,很久,一直,
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面