飘雪

C++博客 首页 新随笔 联系 聚合 管理
  31 Posts :: 0 Stories :: 60 Comments :: 0 Trackbacks

03 2009 档案

     摘要: vc 2005 sp1下isspace函数的debug版本对中文处理有问题

今天碰到一个怪问题,从别人那儿拿来的一段代码先在gcc下过了,又移植到vc下编译,结果debug时老是有assert错误。看了一下代码,错误发生在一个trim函数中。trim函数接受一个char*类型的字符串参数,去掉字符串前后的空格、制表符等空白字符。其中判断是否是空白字符用的是 isspace函数。按照一般的想法,char*字符串里的字符编码无论是GBK还是utf-8,因为都兼容ASCII,所以isspace函数都不应该发生问题。但事实是只要是字符串有中文,无论是gbk还是utf-8编码,isspace内都有assert错误。为了便于说明,把其中的代码抽像出来如下:  阅读全文
posted @ 2009-03-12 14:04 飘雪 阅读(4586) | 评论 (5)  编辑