namespace ToolsStringOption
{
/// <summary>
/// 全半形的轉換
/// </summary>
public class DBCAndSBC
{
/// <summary>
/// 半形轉換成全形
/// 全形的(SBC) 的空格為12288,半形(DBC)的空格為:32
/// 半形的字母為:33-126,對應的全形為:65281-65374
/// 除空格外。其他的全半形相差65248
/// </summary>
/// <param name="input">輸入的字元數</param>
/// <returns></returns>
public string DbcToSbc(string input)
{
char[] c = input.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
if (c[i] == 32)
{
c[i] = (char)12288;
}
if (c[i] >= 33 && c[i] <= 127)
{
c[i] = Convert.ToChar((Convert.ToInt32(c[i])) + 65248);
}
}
return new string(c);
}
/// <summary>
/// 將全形轉換為半形
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public string SbcToDbc(string input)
{
char[] c = input.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
if (c[i] == 12288)
{
c[i] = Convert.ToChar(32);
}
if(c[i]>65281&&c[i]<65374)
{
c[i]=Convert.ToChar((int)c[i]-65248);
}
}
return new string(c);
}
}
}