函数破绽吗
函数漏洞吗?
在pb9以前,asc("中")=214,asc(right("中",1))=208,升级到pb12以后,据说要加a,但是现在情况是:
ASCA("中")=214,但ASCA(RIGHTA("中",1))=-1,是哪里的问题,系统函数错误吗?
------解决方案--------------------
pb12和pb9处理字符的方式有差别,在9下面要转换utf-8码很麻烦,12就方便多了
------解决方案--------------------
RightA的问题,unicode的"中"在内存中估计是这样存放的:4E 2D FE FF,你RightA取到的是FF所以变成了-1
直接ASCA(RIGHT("中",1))就可以得到正确值了
------解决方案--------------------
好标题党
pb10以后,pb的任何文字类变量都不能再存半个字符了
所以想用什么xxA取半个字符都是不可能的。
string ls_parm = '中'
byte lb_tmp
getbyte(blob(ls_parm,encodingansi!),2,lb_tmp)
messagebox('',lb_tmp)
参考上边代码,ps:大量判断建议用GetByteArray
在pb9以前,asc("中")=214,asc(right("中",1))=208,升级到pb12以后,据说要加a,但是现在情况是:
ASCA("中")=214,但ASCA(RIGHTA("中",1))=-1,是哪里的问题,系统函数错误吗?
------解决方案--------------------
pb12和pb9处理字符的方式有差别,在9下面要转换utf-8码很麻烦,12就方便多了
------解决方案--------------------
RightA的问题,unicode的"中"在内存中估计是这样存放的:4E 2D FE FF,你RightA取到的是FF所以变成了-1
直接ASCA(RIGHT("中",1))就可以得到正确值了
------解决方案--------------------
pb10以后,pb的任何文字类变量都不能再存半个字符了
所以想用什么xxA取半个字符都是不可能的。
string ls_parm = '中'
byte lb_tmp
getbyte(blob(ls_parm,encodingansi!),2,lb_tmp)
messagebox('',lb_tmp)
参考上边代码,ps:大量判断建议用GetByteArray