1.using System.Runtime.InteropServices;
2.import kernel32.dll 複製 儲存
[DllImport("kernel32.dll", EntryPoint = "LCMapStringA")]public static extern int LCMapString(int Locale,int dwMapFlags,byte[] lpSrcStr,int cchSrc,byte[] lpDestStr,int cchDest);const int LCMAP_SIMPLIFIED_CHINESE = 0x02000000;const int LCMAP_TRADITIONAL_CHINESE = 0x04000000;
3.轉簡體 複製 儲存
private void btnCHS_Click(object sender, EventArgs e){string src = txtSrcText.Text.Trim();byte[] srcByte = Encoding.Default.GetBytes(src);byte[] desByte = new byte[srcByte.Length];LCMapString(2052, LCMAP_SIMPLIFIED_CHINESE, srcByte, -1, desByte, srcByte.Length);string des = Encoding.Default.GetString(desByte);txtDesText.Text = des;}
4.轉繁體 複製 儲存
private void btnCHT_Click(object sender, EventArgs e){string src = txtSrcText.Text.Trim();byte[] srcByte = Encoding.Default.GetBytes(src);byte[] desByte = new byte[srcByte.Length];LCMapString(2052, LCMAP_TRADITIONAL_CHINESE, srcByte, -1, desByte, srcByte.Length);string des = Encoding.Default.GetString(desByte);txtDesText.Text = des;}
5.關於前一篇C#簡繁體轉換方法(Microsoft.VisualBasic.dll)有朋友提到“餘”不能轉換“餘”的問題,在本篇方法同樣沒有解決,:-(。小弟找了N多資料&他人程式,webservice同樣沒有解決,除非用字型檔。不過在Office 2003簡繁體轉換附加元件的確可以解決,目前正從這方面思考,若有答案再貼出跟朋友討論。