一个程序CString::MakeLower() 总是崩溃,开始以为是多线程问题,但是检查后全是局部变量,不存在跨线程
后来发现原来是:
字符串中有二进制数据,也就是说字符串中有既不是中文也不是英文也不是标点符号的而且不为零的数据,来源于一段二进制数据。
确保字符串中只有字符串,没有二进制数据就OK了
本文介绍了一个关于CString::MakeLower()函数崩溃的问题排查过程。问题的原因在于输入的字符串中含有二进制数据而非纯文本字符。文章提供了避免此类问题发生的解决方案。
一个程序CString::MakeLower() 总是崩溃,开始以为是多线程问题,但是检查后全是局部变量,不存在跨线程
后来发现原来是:
字符串中有二进制数据,也就是说字符串中有既不是中文也不是英文也不是标点符号的而且不为零的数据,来源于一段二进制数据。
确保字符串中只有字符串,没有二进制数据就OK了