如何檢查用戶在文本框中輸入的字符串是否是中文? 任何人都可以引導我?c#如何檢查用戶在文本框中輸入的字符串是否是中文?
回答
您可以輕鬆查看所使用的代碼點是否爲漢字。這些區域在Unicode character database中定義。
// Warning, this code only works for common Han ideographs inside the BMP. (Surrogate code points will need special care, and additional ranges within the BMP contain rare, historic, and uncommon characters.)
const double hannessThreshold = 0.25d;
const char lowestHanCodepoint = '\u4E00';
const char highestHanCodepoint = '\u9FFF';
string text = myTextBox.Text;
int hanCharacterCount = 0;
foreach (char c in text)
if (lowestHanCodepoint <= c && c <= highestHanCodepoint)
hanCharacterCount++;
double hannessScore = (double)hanCharacterCount/text.Length;
if (hannessScore >= hannessThreshold)
MessageBox.Show("You are typing in Chinese, Japanese, or Korean!");
但是,這還不足以確定它是否完全是中文。 Unicode統一了中文,日文和韓文的表意文字,因此需要進行某種語言分析來區分它們。
如果您告訴我們您爲什麼要這樣做,可以提供更多幫助。也許其他一些方法會更好。
可能您需要使用一種簡單的統計方法。統計代碼在中文UTF-8符號範圍內的字符數,以及不是的字符數。根據你的決定,一個組是否比另一個組大。
請注意,這不適用於輸入羅馬字中文的人。對於這種情況,您應該應用字典計數方法來查看有多少英文單詞匹配。如果大多數單詞不匹配,您可以認爲它不是英語。
我的猜測是檢查正在使用的字符集,如果他們是中文字符輸入,我想這會是中文。然而,我認爲這是一件很朦朧的事情。如果中文文字是用西文字母書寫的呢?不知道你還有什麼要檢查的。
通用字符集既支持英文又支持中文? – Reinderien 2011-04-13 17:45:17
@Reinderien:正如我所說的,要檢查是否有特定語言的東西,需要考慮許多變量,這是相當困難和朦朧的。 – 2011-04-13 17:47:00
如果輸入包含4E00-9FFF範圍內的Unicode字符,則它包含中文字符,所以語言可能是中文,日文或韓文。
爲了猜測它是否爲中文,您可能需要檢查輸入中是否出現中文語言中最常見的字符(請參閱http://www.zein.se/patrick/3000char.html)。或者,檢查輸入中是否出現了平假名(3040-309F),片假名(30A0-30FF)或漢字(1100-11FF)字符;他們只發生在日本和韓國;如果它們出現在輸入中,即使文本包含中文字符,您也可以使用而不是有中文文本。
什麼字符集是「4E00-9FFF」? UTF-16? – Reinderien 2011-04-13 17:57:31
@fmunkert:所以如果我需要編寫代碼我將如何寫? – joonshen 2011-04-13 17:59:20
4E00-9FFF是Unicode代碼點,它們獨立於UTF- *編碼。順便說一下,如果查看二進制UTF-16字符串,在UTF-16中,實際上會看到來自4E00-9FFF的值。 – 2011-04-13 18:00:16
- 1. C#如何檢查文本框是否不包含字符串
- 2. 如何檢查用戶是否正在輸入文本字段?
- 3. 檢查輸入是否是C++中的數字或字符串
- 4. 檢查用戶輸入的字符串是否在數組中
- 5. 如何檢查文本框中輸入的文本是字母還是數字
- 6. 如何檢查用戶輸入的字符串是否與
- 7. 如何檢查用戶是否在raw_input中輸入字符串(在python中)?
- 8. 如何檢查輸入字段的文本是「是」還是「否」?
- 9. 如何檢查用戶是否輸入字符串值?
- 10. C++如何檢查用戶輸入是否與文件中的輸入相同?
- 11. 如何檢查輸入文本中是否有數字? (JQuery的)
- 12. 檢查用戶是否在文本框中輸入單個字符或數字c#
- 13. 如何檢查用戶輸入是否已存在於文本文件中python
- 14. 如何檢查郵政編碼是否在文本框中正確輸入C#
- 15. 如何在Objective-C中檢查輸入是雙字符還是字符串?
- 16. 如何檢查c中文本框中字符串的結尾#
- 17. 如何在多個文本框中檢查輸入是否爲數字?
- 18. 如何檢查是否字符串是迴文沒有C++
- 19. 如何檢查字符串中的三個用戶輸入詞是否相同?
- 20. 如何檢查字符串是否等同於Python中的用戶輸入?
- 21. c#在命令行中輸入字符串文本框文本
- 22. 如何檢查文件是否存在於用戶輸入的C中
- 23. 如何檢查用戶是否在scanf中輸入空行c
- 24. 如何檢查用戶是否未輸入C中的全部空白字符
- 25. 檢查文本插入符號是否在AutoHotkey中的文本框中
- 26. 檢查輸入是否是一個循環中的字符串
- 27. 檢查用戶輸入是否=定義的字符串
- 28. 檢查文本框中的輸入是否爲電子郵件
- 29. 如何檢查字符串是否包含C#中的字符?
- 30. C++檢測用戶是否輸入字符串而不是輸入
感謝您的幫助! – joonshen 2011-04-13 18:20:00
原因我在做中文OCR。讓使用者可以訓練系統學習新的漢字。所以我需要限制用戶輸入其他語言,但只限於中文。 – joonshen 2011-04-14 12:49:17