| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3429 人关注过本帖
标题:如何批量地将双字节(全角)字母转换为单字节的(半角)字母
只看楼主 加入收藏
wjp456789
Rank: 5Rank: 5
来 自:四川成都
等 级:职业侠客
威 望:1
帖 子:345
专家分:330
注 册:2012-6-25
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:25 
如何批量地将双字节(全角)字母转换为单字节的(半角)字母
如图
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 如何 字母 
2013-01-07 20:40
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
什么叫批量转换?

授人以渔,不授人以鱼。
2013-01-07 20:54
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
upda 表 set 字段=lower(字段)
2013-01-07 20:58
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:20 
REPLACE ALL 字段名 WITH STRCONV(字段名,2)

坚守VFP最后的阵地
2013-01-07 21:00
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
STRCONV( ) 函数

将字符表达式在单字节、双字节、UNICODE 和特定场合表示法之间进行转换。
STRCONV(cExpression, nConversionSetting [, nRegionalIdentifier [, nRegionalIDType]])
参数
cExpression  
指定 STRCONV( ) 要转换的字符表达式。
nConversionSetting  
指定转换类型。下面表格列出了 nConversionSetting 的值以及执行转换操作的类型。
nConversionSetting 转换
1                  将 cExpression 中的单字节字符转换为双字节字符。
                   仅支持局部 ID (用 nRegionalIdentifier 或者 nRegionalIDType 参数来指定)。
2                  将 cExpression 中的双字节字符转换为单字节字符。
                   仅支持局部 ID (用 nRegionalIdentifier 或者 nRegionalIDType 参数来指定)。
 

坚守VFP最后的阵地
2013-01-07 21:01
wjp456789
Rank: 5Rank: 5
来 自:四川成都
等 级:职业侠客
威 望:1
帖 子:345
专家分:330
注 册:2012-6-25
收藏
得分:0 
S版 正确。就是要找一个转换的函数。

我是来向高手学习的!
2013-01-07 21:02
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
把全角字母和数字转成半角,与把所有字符编码从Unicode转成DBCS,其实是两回事。

授人以渔,不授人以鱼。
2013-01-07 21:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你运行一下下面的命令看是什么结果?
? STRCONV("ABCD,。EFG", 2)

授人以渔,不授人以鱼。
2013-01-07 23:16
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用TonyDeng在2013-1-7 23:16:04的发言:

你运行一下下面的命令看是什么结果?
? STRCONV("ABCD,。EFG", 2)
原因?
用CHRTRANC("ABCD,,,。EFG",[ABCD],[ABCD])比较合适

[ 本帖最后由 sdta 于 2013-1-7 23:22 编辑 ]

坚守VFP最后的阵地
2013-01-07 23:18
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
首先不说它把逗号和句号转换出乱码,而是要明白,我们本不该处理逗号和句号这类标点符号,因为问题本身只是要转换全角英文字母和全角数字,除此之外的字符全部不应该变动,不管那些字符是什么编码,都必须维持原状才是符合要求的。

strconv(,2),是把双字节编码(即Unicode)转换为单字节编码(DBCS),那样它把原本整体的多字节字符内码拆解成一个一个单字节串成的字符,但我们使用的中文系统却是根据字符内码的规律来组合识别汉字的,当某些单字节字符带有汉字前缀而让它把后续的字符接驳进来形成无法辨识为合法汉字编码的时候,就出现乱码(显示问号)。

授人以渔,不授人以鱼。
2013-01-07 23:25
快速回复:如何批量地将双字节(全角)字母转换为单字节的(半角)字母
数据加载中...
 
   



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

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