我正在开发一个需要检测字符串是否为Unicode的函数。
我从Access DB获取此字符串。
现在我分析每两个字节:如果秒是00则是Unicode,但并非总是如此;有时候,我有&H2
&HA1
个字节。
我该如何解决这个问题?
答案 0 :(得分:0)
如果基础数据主要是ASCII / ANSI,那么您当前的检查就足够了。在16位Unicode中,此类字符串数据将具有大多数字符,其高字节为00.不是100%,而是明显多数。这不会出现在直接的ANSI字符串数据中。
答案 1 :(得分:0)
只有0到127之间的字符是“安全的”。从128到255的ANSI字符值在不同的语言环境中具有不同的含义和字符映射。
例如,在美国英语语言环境中:
Option Explicit
Private Sub Form_Load()
Dim S As String
S = "‰"
Debug.Print S, Asc(S), AscW(S)
End Sub
产地:
‰ 137 8240