有时候,为了验证客户输入的半角字符,或者限制客户输入全角字符,可用下面这两个转换函数: 源代码: Imports Microsoft.VisualBasic Public Class IMEConvert #Region "全角半角转换" ''' <summary> ''' 转全角的函数(SBC case) ''' </summary> ''' <param name="input">任意字符串</param> ''' <returns>全角字符串</returns> '''<remarks> '''全角空格为12288,半角空格为32 '''其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 '''</remarks> Public Shared Function ToSBC(ByVal input As String) As String '半角转全角: Dim c As Char() = input.ToCharArray() For i As Integer = 0 To c.Length - 1 Dim intC As Integer = Convert.ToInt32(c(i)) If intC = 32 Then c(i) = ChrW(12288) Continue For End If If intC < 127 Then c(i) = ChrW(intC + 65248) End If Next Return New String(c) End Function ''' <summary> 转半角的函数(DBC case) </summary> ''' <param name="input">任意字符串</param> ''' <returns>半角字符串</returns> '''<remarks> '''全角空格为12288,半角空格为32 '''其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 '''</remarks> Public Shared Function ToDBC(ByVal input As String) As String Dim c As Char() = input.ToCharArray() For i As Integer = 0 To c.Length - 1 Dim intC As Integer = Convert.ToInt32(c(i)) If intC = 12288 Then c(i) = ChrW(32) Continue For End If If intC > 65280 AndAlso intC < 65375 Then c(i) = ChrW(intC - 65248) End If Next Return New String(c) End Function #End Region End Class