2011年5月16日 星期一

[C#] String 處理, 簡體 轉 繁體

有兩種作法  ,  第一種 是引用 Microsoft.VisualBasic  ,第二種 是引用 作業系統 Dll
但是第一種 有時候轉完 會出現?號,原因不明 (時間關係 所以沒繼續追 下去)

1.)
Microsoft.VisualBasic 加入參考
 private string CHT_TO_BIG5(string str)
        {
            return Microsoft.VisualBasic.Strings.StrConv(str, Microsoft.VisualBasic.VbStrConv.TraditionalChinese, 0);
        }

2.)
 //字串轉 繁體 使用
        internal const int LOCALE_SYSTEM_DEFAULT = 0x0800;
        internal const int LCMAP_SIMPLIFIED_CHINESE = 0x02000000;
        internal const int LCMAP_TRADITIONAL_CHINESE = 0x04000000;
        [DllImport("kernel32", CharSet = CharSet.Auto, SetLastError = true)]
        internal static extern int LCMapString(int Locale, int dwMapFlags, string lpSrcStr, int cchSrc, [Out] string lpDestStr, int cchDest);

 private string String_To_BIG5(string str)
        {
            String tTarget = new String(' ', str.Length);
            int tReturn = LCMapString(LOCALE_SYSTEM_DEFAULT, LCMAP_TRADITIONAL_CHINESE, str, str.Length, tTarget, str.Length);
            return tTarget;
        }

沒有留言:

張貼留言