搜尋此網誌

2014年10月16日 星期四

全形半形轉換

///<summary>
///字串轉全形
///</summary>
///<param name="input">任一字元串</param>
///<returns>全形字元串</returns>
private static string ToWide(string input)
{
    //半形轉全形:
    char[] c = input.ToCharArray();
    for (int i = 0; i < c.Length; i++)
    {
        //全形空格為12288,半形空格為32
        if (c[i] == 32)
        {
            c[i] = (char)12288;
            continue;
        }
        //其他字元半形(33-126)與全形(65281-65374)的對應關係是:均相差65248
        if (c[i] < 127)
            c[i] = (char)(c[i] + 65248);
    }
    return new string(c);
}

///<summary>
///字串轉半形
///</summary>
///<paramname="input">任一字元串</param>
///<returns>半形字元串</returns>
private static string ToNarrow(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);
}

沒有留言:

張貼留言