這是個老問題了,今天做一個完整的 demo
由於 dotnet framework 內的 string 儲存的是 unicode, 因此我們將字元寫到檔案內,看看哪些字碼是中文字。
Stream stream = File.Open(@"C:\temp\all.txt", FileMode.Create, FileAccess.Write, FileShare.Read); using (StreamWriter sw = new StreamWriter(stream, System.Text.Encoding.Unicode)) for (int i = 256; i < 65536; i++) sw.WriteLine("{0}:{1}", i, (char)i);
打開 all.txt,發現第一個中文字是 19968 的「一」,最後的中文字是40869的「龥」。
所以呢,所有的中文字都在「一」跟「龥」的範圍之內。
最後,要如何判斷字串內是否有中文字呢?這當然是 regular expression 的工作了。程式碼如下
Regex ex = new Regex("[一-龥]"); bool isMatched = ex.IsMatch("jjsss 中文 ksks"); //isMatched will be true
PS: 特別符號,日文等,算不算中文字呢?如果連這些都考慮進來,就有得玩了。跟您的客戶 check 一下吧!
沒有留言:
張貼留言