///
/// 轉全形的函數(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);
}
2.C#中直接調用VB.NET的函數,兼論半形與全形、簡繁體中文互相轉化
在C#項目中添加引用Microsoft.VisualBasic.dll, 可以在C#程式中直接使用VB.NET中豐富的函數
1// 命令列編譯 : csc /r:Microsoft.VisualBasic.dll Test.cs
2
3// 如果是用 Visual Studio .NET IDE, 請按以下方法為項目添加引用:
4// 開啟[方案總管], 右擊項目名稱, 選擇[添加引用],
5// 從列表中選擇 Microsoft Visual Basic .NET Runtime 組件.
6
7 using Microsoft.VisualBasic;
8
9 class Test
10{
11 static void Main()
12 {
13 string s = "部落格園-空軍 [skyIV.cnBlogs.com]";
14 System.Console.WriteLine(s);
15 s = Strings.StrConv(s, VbStrConv.Wide , 0); // 半形轉全形
16 s = Strings.StrConv(s, VbStrConv.TraditionalChinese, 0); // 簡體轉繁體
17 System.Console.WriteLine(s);
18 s = Strings.StrConv(s, VbStrConv.ProperCase , 0); // 首字母大寫
19 s = Strings.StrConv(s, VbStrConv.Narrow , 0); // 全形轉半形
20 s = Strings.StrConv(s, VbStrConv.SimplifiedChinese , 0); // 繁體轉簡體
21 System.Console.WriteLine(s);
22 }
23}