'判斷一段文字中是否含有BIG5碼漢字 , 可用做內碼的自動識別簡繁體
Function CheckBIG(ByVal strSource As String) As String
'English - Ascii字元,BIG5 - BIG5碼,GB - GB碼
Dim idx1 As Long, idx2 As Long, idx3 As Long, idx4 As Long
Dim strMid As String, ByteTemp() As Byte
CheckBIG = "English"
idx1 = 0
idx2 = Len(strSource)
Do While True
If (idx1 * 100 + 100) <= idx2 Then
strMid = Mid$(strSource, idx1 * 100 + 1, 100)
ElseIf (idx1 * 100 + 100) > idx2 And (idx1 * 100 + 1) <= idx2 Then
strMid = Mid$(strSource, idx1 * 100 + 1, idx2 - idx1 * 100)
Else
Exit Do
End If
'判斷其中是否包含漢字
If LenB(StrConv(strMid, vbFromUnicode)) <> Len(strMid) Then
CheckBIG = "GB"
idx4 = Len(strMid)
For idx3 = 1 To idx4
ByteTemp = StrConv(Mid$(strMid, idx3, 1), vbFromUnicode)
If UBound(ByteTemp) > 0 Then
'第一個地區 (ByteTemp(1) >= 64) And (ByteTemp(1) <= 126) 第二個地區 (ByteTemp(1) >= 161) And (ByteTemp(1) <= 254)
If (ByteTemp(1) >= 64) And (ByteTemp(1) <= 126) Or (ByteTemp(1) >= 161) And (ByteTemp(1) <= 254) Then
CheckBIG = "BIG5": Exit Do
End If
End If
Next idx3
End If
idx1 = idx1 + 1
Loop
End Function
作者:fhbmonkey