| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 761 人关注过本帖
标题:VB字符串处理机制的问题,
只看楼主 加入收藏
陆嘉文
Rank: 1
来 自:江西
等 级:新手上路
帖 子:96
专家分:6
注 册:2011-11-10
结帖率:76.92%
收藏
已结贴  问题点数:20 回复次数:2 
VB字符串处理机制的问题,
计算机基础上不是说一个英文字符占一个字节,一个汉字字符占两个字节。那么早期的VB采用单字节处理机制,一个英文字符占一个字节,一个 汉字占两个字节。后来VB4.0以后就采用了大字符统一编码的方式,即所有字符都占2个字节 。早期的VB字符串处理机制我可以理解,可使后来的大字符统一编码的方式我就不太理解,计算机基础上不是说一个英文字符占一个字节,一个汉字字符占两个字节,为什么VB4.0以后的版本可以这样?我不太理解,谁能帮我解释一下啊 !
搜索更多相关主题的帖子: 英文 计算机基础 字符串 汉字 
2011-11-13 16:53
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:10 
Option Explicit

Private Sub Form_Load()
Me.AutoRedraw = True
Const TEST As String = "abc123啊哦呃"
    Dim bData() As Byte, i As Long
    bData = TEST
    Print "UNICODE"
    For i = LBound(bData) To UBound(bData)
        Print MyHex(bData(i)); " ";
        If ((i + 1) Mod 16) = 0 Then Print
    Next
   
    bData = StrConv(TEST, vbFromUnicode)
    Print
    Print "............"
    For i = LBound(bData) To UBound(bData)
        Print MyHex(bData(i)); " ";
        If ((i + 1) Mod 16) = 0 Then Print
    Next
End Sub

Function MyHex(ByVal v As Byte) As String
    MyHex = Right$("0" & Hex$(v), 2)
End Function
'调试下就直观多了吧。要解更多就百度吧!~
2011-11-13 17:43
Artless
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:4211
专家分:28888
注 册:2009-4-8
收藏
得分:10 
"abc123啊哦呃"在中文系统中,9个字符,18个字节

无知
2011-11-13 21:52
快速回复:VB字符串处理机制的问题,
数据加载中...
 
   



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

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