| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2171 人关注过本帖, 1 人收藏
标题:在vfp中,distinct和group最多可以区分多长的字符串
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
那这个确实是跟128有关啊。国际化下,字符是Unicode编码,2byte一个字符。字符字段的限制为256byte,故最多容纳128个Unicode字符。而DBCS是不定长的编码,如果全是英文字符,就可以容纳256个,如果其中夹杂汉字(Unicode编码),总字符数就会减少(但用len()计算,汉字的字符数是2,用lenc()算才是1)。SET COLLATE TO 'PINYIN',指定用Unicode编码,则最多计数到128个字符,因为全部要乘以2到达256byte的限制。可能正是这个原因,在SET COLLATE TO 'PINYIN'的时候,就只能传出128个字符,而SET COLLATE TO 'MACHINE'是用机器内码ASCII传递的,按256计数。

VFP的字段,最大容纳是256byte,所以它宣称字符字段的最大字符数是254个字符,这是在DBCS编码中说的,在Unicode编码下,它只能算是128个字符。

[ 本帖最后由 TonyDeng 于 2012-3-2 16:35 编辑 ]

授人以渔,不授人以鱼。
2012-03-02 16:33
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
回复 21楼 TonyDeng
高见,值得学习

坚守VFP最后的阵地
2012-03-03 23:25
快速回复:在vfp中,distinct和group最多可以区分多长的字符串
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016880 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved