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]