双字节字符与sql语句的问题!
请看下面代码:
CString strSql;
strSql.format("select * from T_user where name='%s'","罗大佑");
一般情况下这条sql语句执行都没有问题,可是……
"罗大佑"是汉字,每个汉字两个字节,这一串字符总共是6个字节。
现在假设文件出错,最后一个字符弄丢了,这一串字符变成了5个字节。那么问题来了,format之后,strSql变成
select * from T_user where name='罗大?
最后一个“?”是有半个“佑”字加上单引号“ ' ”组成的。因此,这一串sql语句成为不合法语句。
就是这个问题,我追踪了好久才发现的。请问各位大虾,有何解决方法?