0

我的计算机上的代码页面临一个重大问题。
Text Services and Input Languages我选择使用English (United States) - US
And for Greek Language 我选择使用Greek Polytonic
当我运行我的项目时,我使用以下代码来验证输入的字符

Public Shared Function ValidateChar(ByVal AsciiChar As String, ByVal CharTable As String, ByVal sender As Object, ByVal e As System.EventArgs) As Boolean
        Dim ConvChar As Integer = CUInt(Microsoft.VisualBasic.Asc(AsciiChar))
        Dim ConvCharW As Integer = CUInt(Microsoft.VisualBasic.AscW(AsciiChar))

        ValidateChar = False

        Select Case CharTable
            Case GrEn
                Select Case ConvChar
                    Case 65 To 90, 97 To 122, 182, 184 To 186, 188, 190 To 254, 8
                        ValidateChar = True
                End Select
End Function

当我输入希腊字符λ小 lambda时,ConvChar它给我数字 63,当我输入英文字符c时,它给我数字 99
这里的问题不仅是找到我的计算机的字符编号;还可以控制任何计算机的字符集。有什么提示可以帮助我吗?

最后,我将此代码用作计算机上的解决方案:

Public Shared Function ValidateChar(ByVal AsciiChar As String, ByVal CharTable As String, 
    ByVal sender As Object, ByVal e As System.EventArgs) As Boolean
            Dim ConvChar As Integer = CUInt(Microsoft.VisualBasic.Asc(AsciiChar))
            Dim ConvCharW As Integer = CUInt(Microsoft.VisualBasic.AscW(AsciiChar))

            ValidateChar = False

            Select Case CharTable
                Case GrEn
                    Select Case ConvCharW
                        Case 65 To 90, 97 To 122, 913 To 937, 945 To 969, 940 To 943, 972 To 974, 8147, 8163, 8
                            ValidateChar = True
                    End Select
                Case GrNEn
                    Select Case ConvCharW
                        Case 48 To 57, 65 To 90, 97 To 122, 913 To 937, 945 To 969, 940 To 943, 972 To 974, 8147, 8163, 8
                            ValidateChar = True
                    End Select
    End Function

但即便如此,我还没有解决我的项目将在另一台具有不同窗口的计算机上运行时遇到的问题。

4

1 回答 1

0

抬头看System.Text.Encoding.Unicode.GetBytes()。尝试将您的 Unicode 文本转换为Byte- 尽管它会为每个字符提供两个字节对(因为 Unicode 是 UTF16LE)。

于 2014-03-21T09:04:50.973 回答