具体的说
就是如何区分一个字符是中文字符还是英文我在MSDN里查过了,没有介绍
可能是MSDN的版本不够新,里面对DBCS的内容没说多少我也用ASCB函数试过了,看不出有什么用。VB 用的是UNICODE
UNICODE 的0x3000 到0x9fff是分配给中文的吧
但知道这个又怎么做呢?烦请赐教
或请提供一下UNICODE 相关的资料,谢谢
就是如何区分一个字符是中文字符还是英文我在MSDN里查过了,没有介绍
可能是MSDN的版本不够新,里面对DBCS的内容没说多少我也用ASCB函数试过了,看不出有什么用。VB 用的是UNICODE
UNICODE 的0x3000 到0x9fff是分配给中文的吧
但知道这个又怎么做呢?烦请赐教
或请提供一下UNICODE 相关的资料,谢谢
解决方案 »
- 我在vb版是不是和谁有仇啊?!为什么我的好几个回复都被删除了?!!!!!
- HTTP,80端口上传问题
- C++做的COM组件,传给VB一个字符数组,VC里用的是BSTR,在VB里得到的数组是LONG类型的,怎么转换?
- 如何获得进程详细信息
- 如何用Asc得到Alt Ctrl Del Tab Win热键的值??
- 关于不能加载“amcompat.tlb”的问题
- 请问如何创建并设计ACCESS表?
- 一个还不错的编程站点。电子书很多哦!~~~~
- 诚寻ScriptControl控件的中文开发文档或说明
- 聪明的人用Delphi?
- Cooly(☆开心就好 ^o^ ☆) ,lxcc(虫莲), online(龙卷风(学习.NET中...)) 请进
- ★★★有方法可以“按Tab键”让光标停在ListView的“subitem”上吗?★★★
上面一句 在MSDN 里有 但是怎么应用呢?
Dim buf() As Byte
Dim i As Long
Dim tempa As String
buf = strIn
For i = 0 To UBound(buf())
tempa = Hex(buf(i))
If Len(tempa) = 1 Then tempa = "0" + tempa
StrToUnicode = tempa & StrToUnicode
Next i
End Function
调用:
Private Sub Command1_Click()Dim a As String
a = StrToUnicode("啊")
MsgBox aEnd Sub
UNICODE 的0x3000 到0x9fff是分配给中文的吧
但知道这个又怎么做呢?用ascw呀
AscW 传回字符串第一个字Unicode码
取回之后进行判定
dim offset as long
if Asc(Chr(Buf(offset))) =0 then 是中文 else 英文
0x4e00 至 0x9fa5 共20902个字
0xf900 至 0xfa2d 共302个字 (扩展区)
lenb("分")为2接分,谢谢
If LenB(StrConv("接", vbFromUnicode)) <> Len("接") Then MsgBox "是双字节字符,但未必是汉字"
直接asc()你要判断的字符
不在0-255就是双字节字符
Dim buf() As Byte
Dim i As Long
Dim tempa As String
buf = strIn
For i = 0 To UBound(buf())
tempa = Hex(buf(i))
If Len(tempa) = 1 Then tempa = "0" + tempa
StrToUnicode = tempa & StrToUnicode
Next i
End Function
调用:
Private Sub Command1_Click()Dim a As String
a = StrToUnicode("汉")
if a>="3000" and a<="9FFF" then
msgbox "这个就是汉字了"
endifEnd Sub
华军软件 http://www.onlinedown.net/soft/7545.htm
UNICODE 相关的信息我不知道 标点与一些符号UNICODE 值的范围
'Unicode 转换为 中文函数
Dim i As Long
Dim bt(1) As Byte
Dim hr As String
For i = 1 To Len(strIn) Step 4
bt(1) = Val("&H" & Mid(strIn, i, 2))
bt(0) = Val("&H" & Mid(strIn, i + 2, 2))
hr = bt
Covert = Covert & hr
NextEnd Function
msgbox "chinese character!"
end if
If (zz > &H80) Then '大于0x80H表示是汉字
Temp_count = zz
Temp_count = Temp_count * 256
Get #1, , zz '读低位
Biao_count = Biao_count + 1
Temp_count = Temp_count + zz
If (Temp_count <> 0) Then
Rec_data = Rec_data & Chr(Temp_count)
End If
Else '未大于0x80H表示是ASCII码
If (zz <> 0) Then
kk = Chr(zz)
Rec_data = Rec_data & kk
End If
End If
只好先转化成字符串
dim l as long
dim s as string
s = "2C6E"
l = val( "&h" & mid( s, 1, 2 ) )
l = l * 256 + val( "&h" & mid( s, 3 ) )
s = chr( l )
得到繁体的“测”.