XSLT存档  

不及格的程序员-八神

 查看分类:  ASP.NET XML/XSLT JavaScripT   我的MSN空间Blog

-这个函数 似乎 陷入 死循环了,当传入的参数unicode 字符为 "上海南京东路118号,电话:021-66668888",上 ->unicode = "4e0a",但由于是小端顺序,内存地址 是 0a4e 的排列顺序
vc6项目MBCS模式没有问题,但当转成 Unicode模式时,问题出现了

CString CTools::Trim(const CString &src)
{
    CString target = src;
    target.TrimLeft();
    target.TrimRight();

    typedef map<char, char> TSpaceList; //这里用的char 类型,是不对的,需要TCHAR
    TSpaceList theSpaceList;
    theSpaceList[9]; // 横向制表
    theSpaceList[13]; // 回车
    theSpaceList[10]; // 换行

    int len = target.GetLength();
    while (theSpaceList.find(target[0]) != theSpaceList.end() 
        || theSpaceList.find(target[len - 1]) != theSpaceList.end()) //找到了0A 上字的低字节位也就是内存中的第一个字节
    {
        for (TSpaceList::iterator it = theSpaceList.begin(); it != theSpaceList.end(); ++it)
        {
            target.TrimLeft(it->first);//这里trimleft按宽字符找0x000a从传进来的字符串,但是它找不到的,结果会一直while循环下去
            target.TrimRight(it->first);
        }
        len = target.GetLength();
        if (len == 0) break;
    };
    return target;
}

 

posted on 2026-02-13 15:00  不及格的程序员-八神  阅读(3)  评论(0)    收藏  举报