我有个从BSTR转过来的CString:BSTR szFormat
CString csFormat = W2A(szFormat);csFormat中是英文和汉字混合的字符串
我想把这个字符串按一个字符一个字符,而不是一个字节一个字节的读出来
然后每个字符做判断再处理我现在有一段循环:
while( iLen<csFormat.GetLength())
{
if(csFormat.GetAt(iLen) == '|')
{
按GetAt()处理的,但是这样,如果碰上像"億"这样的生僻字,第二个字节就是"|"
这样循环会出问题所以我需要一个字符一个字符的处理
是需要先转成unicode么?
大家有什么例子么?
CString csFormat = W2A(szFormat);csFormat中是英文和汉字混合的字符串
我想把这个字符串按一个字符一个字符,而不是一个字节一个字节的读出来
然后每个字符做判断再处理我现在有一段循环:
while( iLen<csFormat.GetLength())
{
if(csFormat.GetAt(iLen) == '|')
{
按GetAt()处理的,但是这样,如果碰上像"億"这样的生僻字,第二个字节就是"|"
这样循环会出问题所以我需要一个字符一个字符的处理
是需要先转成unicode么?
大家有什么例子么?
解决方案 »
- 类与成员函数
- 我在MFC工程中用WINCAP库为什么老是出现连接错误呢?而在WIN32 console工程下面却可以通过,这是怎么回事?
- 高手请进:怎样让文件不被复制
- 如何能够录制网络上在线的电视?
- 请问VC4.0编写的程序问题?没有main的project
- 谁有免费的7位qq号码?高分收购
- 如何用ListCtrl实现windows Xp下的array icons by-> show n in groups
- WINDOWS API这么多,怎么学起?请大家指教!高分奉送!
- 静态变量与普通变量有什么区别???
- 关于“系统资源”泄露的问题,来者有分
- 探讨:有关 Doc/View 框架的文件
- 请问资源文件如何做成动态链接库?
_ismbstrail
BOOL canBeChineseFirstByte=TRUE; //add by xxx 20040617 当前字节可能为汉字的第一个字节时 while( iLen<csFormat.GetLength())
{
//add if&else by xxx 20040618 对汉字进行处理
if(canBeChineseFirstByte)//如果当前字节可能为汉字的第一个字节时
{
if(iLen && IsDBCSLeadByte(csFormat.GetAt(iLen-1)))//如果不是字符串第一个字节且前一个字节为汉字的第一个字节时
{
prevByteIsChineseFirstByte=TRUE;//前一个字节为汉字第一个字节
canBeChineseFirstByte=FALSE;//设置下一个字节即汉字的第二个字节在处理时不能被认为是汉字的第一个字节
}
else
{
prevByteIsChineseFirstByte=FALSE;
canBeChineseFirstByte=TRUE;
}
}
else//当前字节不可能为汉字的第一个字节
{
prevByteIsChineseFirstByte=FALSE;
canBeChineseFirstByte=TRUE;
}//end of add by xxx 20040618
if(csFormat.GetAt(iLen) == '|' && !prevByteIsChineseFirstByte)//add && !prevByteIsChineseFirstByte by xxx 20040618 如果当前字节为'|'且当前字节不在汉字中时
{