DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23095>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23095

对中英文混合字符串支持的不是很好

           Summary: 对中英文混合字符串支持的不是很好
           Product: Xerces-C++
           Version: 2.3.0
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Utilities
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


用XMLString对中英文混合字符串进行编码转换后再转化回来,有时会发现字符串少了一截
当字符串以英文字符(单字节字符)开始时一切正常
当字符串以中文字符(双字节字符)开始时会丢掉尾部的部分字符

将下面函数按下面方式修改后就好了
unsigned int Win32LCPTranscoder::calcRequiredSize(const char* const srcText)
{
    if (!srcText)
        return 0;

/* 修改于2003-08-22
    unsigned charLen = ::mblen(srcText, MB_CUR_MAX);
    if (charLen == -1)
                return 0;
    else if (charLen != 0)
        charLen = strlen(srcText)/charLen;
    if (charLen == -1)
        return 0;
    return charLen;
*/

        if(mblen(srcText,MB_CUR_MAX)==-1)return 0;
        unsigned charLen=mbstowcs(0,srcText,0);
        return charLen;
}

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to