C#版本:
///
转全角的函数(SBC
case
)
///
/// 任意字符串
/// 全角字符串
///
/// 全角空格为12288,半角空格为32
/// 其他字符半角( 33 - 126 )与全角( 65281 - 65374 )的对应关系是:均相差65248
///
public string ToSBC( string input )
{
// 半角转全角:
char [] c = input .ToCharArray();
for ( int i = 0 ; i < c.Length; i ++ )
{
if (c[i] == 32 )
{
c[i] = ( char ) 12288 ;
continue ;
}
if (c[i] < 127 )
c[i] = ( char )(c[i] + 65248 );
}
return new string (c);
}
///
/// 转半角的函数(DBC case )
///
/// 任意字符串
/// 半角字符串
///
/// 全角空格为12288,半角空格为32
/// 其他字符半角( 33 - 126 )与全角( 65281 - 65374 )的对应关系是:均相差65248
///
public string ToDBC( string input )
{
char [] c = input .ToCharArray();
for ( int i = 0 ; i < c.Length; i ++ )
{
if (c[i] == 12288 )
{
c[i] = ( char ) 32 ;
continue ;
}
if (c[i] > 65280 && c[i] < 65375 )
c[i] = ( char )(c[i] - 65248 );
}
return new string (c);
}
VB版本:
Public Function ToSBC() Function ToSBC()Function ToSBC()Function ToSBC(ByVal input As String) As String ’转全角
Dim c As Char() = input.ToCharArray
Dim i As Integer = 0
While i < c.Length
If c(i) = ChrW(32) Then
c(i) = ChrW(12288)
ElseIf AscW(c(i)) < 127 Then
c(i) = ChrW((AscW(c(i)) + 65248))
End If
System.Math.Min(System.Threading.Interlocked.Increment(i), i - 1)
End While
Return New String(c)
End Function
Public Function ToDBC()Function ToDBC()Function ToDBC()Function ToDBC(ByVal input As String) As String ’转半角
Dim c As Char() = input.ToCharArray
Dim i As Integer = 0
While i < c.Length
If AscW(c(i)) = 12288 Then
c(i) = ChrW(32)
ElseIf AscW(c(i)) > 65280 AndAlso AscW(c(i)) < 65375 Then
c(i) = ChrW(AscW(c(i)) - 65248)
End If
System.Math.Min(System.Threading.Interlocked.Increment(i), i - 1)
End While
Return New String(c)
End Function
///
/// 任意字符串
/// 全角字符串
///
/// 全角空格为12288,半角空格为32
/// 其他字符半角( 33 - 126 )与全角( 65281 - 65374 )的对应关系是:均相差65248
///
public string ToSBC( string input )
{
// 半角转全角:
char [] c = input .ToCharArray();
for ( int i = 0 ; i < c.Length; i ++ )
{
if (c[i] == 32 )
{
c[i] = ( char ) 12288 ;
continue ;
}
if (c[i] < 127 )
c[i] = ( char )(c[i] + 65248 );
}
return new string (c);
}
///
/// 转半角的函数(DBC case )
///
/// 任意字符串
/// 半角字符串
///
/// 全角空格为12288,半角空格为32
/// 其他字符半角( 33 - 126 )与全角( 65281 - 65374 )的对应关系是:均相差65248
///
public string ToDBC( string input )
{
char [] c = input .ToCharArray();
for ( int i = 0 ; i < c.Length; i ++ )
{
if (c[i] == 12288 )
{
c[i] = ( char ) 32 ;
continue ;
}
if (c[i] > 65280 && c[i] < 65375 )
c[i] = ( char )(c[i] - 65248 );
}
return new string (c);
}
VB版本:
Public Function ToSBC() Function ToSBC()Function ToSBC()Function ToSBC(ByVal input As String) As String ’转全角
Dim c As Char() = input.ToCharArray
Dim i As Integer = 0
While i < c.Length
If c(i) = ChrW(32) Then
c(i) = ChrW(12288)
ElseIf AscW(c(i)) < 127 Then
c(i) = ChrW((AscW(c(i)) + 65248))
End If
System.Math.Min(System.Threading.Interlocked.Increment(i), i - 1)
End While
Return New String(c)
End Function
Public Function ToDBC()Function ToDBC()Function ToDBC()Function ToDBC(ByVal input As String) As String ’转半角
Dim c As Char() = input.ToCharArray
Dim i As Integer = 0
While i < c.Length
If AscW(c(i)) = 12288 Then
c(i) = ChrW(32)
ElseIf AscW(c(i)) > 65280 AndAlso AscW(c(i)) < 65375 Then
c(i) = ChrW(AscW(c(i)) - 65248)
End If
System.Math.Min(System.Threading.Interlocked.Increment(i), i - 1)
End While
Return New String(c)
End Function