回答
你是什麼意思的「全寬」?字符 的寬度取決於它正在顯示的字體。
如果您的意思是它是否是單字節字符,它的 仍然不清楚。單字節字符在什麼編碼?在 UTF-8中,如果(且僅當)代碼點小於128,則它將是單字節字符;如果你使用UTF-16(可能的, 因爲你是在Windows下),只是比較 128的ISO 8859-1(另一種廣爲流傳 編碼)單字節編碼的字符:以256爲比較任何小於256的數字,UTF-16單位將在數字上與 ISO 8859-1(有時稱爲Latin-1)中的代碼點相同。對於編碼ASCII的單字節 (幾乎從未使用過,,但大部分 通用編碼與前128個編碼相同),小於128是好的。
http://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms – Roddy
@Roddy更有意義。我應該在我的Unicode編碼中查找他的第二個全角字符。 (當然,這基本上意味着沒有簡單的答案。) –
你需要的是檢索角色的East Asian Width。您可以通過解析Unicode字符數據庫中的EastAsianWidth.txt文件來完成此操作。我無法找到返回此信息的Win32 API,但在Python中,例如,您可以使用unicodedata.east_asian_width(unichr)
。
有關問題的背景和更多信息,請參閱Annex #11。
這是正確的答案。 FWIW:來自Unicode聯盟的各種文件都是爲了便於解析而設計的,所以從其生成C++表格不應該太困難。 (我爲其他許多文件完成了此工作。) –
東亞以外是否還有其他語言使用全角字符? – linquize
有關更完整的討論,請參閱此答案:http://stackoverflow.com/a/9145712/53974 – Blaisorblade
- 1. C:檢查字符串是否爲Palindrome
- 2. C++ - 檢查字符串是否爲空
- 3. 檢查字符是否爲Delphi中的字母(Unicode)
- 4. 檢查字符串是否包含Unicode字符的暴怒
- 5. C++ 11 - Unicode字符串 - 查找是否包含非ASCII字符
- 6. MFC:如何檢查一個字符輸入是否是unicode?
- 7. 檢查字符串是否相同C++
- 8. 如何檢查字符串是UNICODE vb.net
- 9. 檢查字節數組中的字節是否爲Unicode
- 10. 檢查字符串是否爲全局模式
- 11. 檢查輸入是否爲數字C
- 12. 檢查參數是否爲字符串
- 13. 檢查字符串是否爲UTF-8
- 14. SAS檢查是否爲IN字符
- 15. 檢查字符串是否爲空
- 16. 檢查字符串是否爲迴文
- 17. iPhone - 檢查字符是否爲大寫
- 18. 檢查字符串是否爲空jquery
- 19. 檢查字符串是否爲空
- 20. 檢查PsiElement是否爲字符串
- 21. Java:如何檢查字符是否屬於特定的unicode塊?
- 22. 檢查字符串包含Unicode字符
- 23. 0xFFFF是否爲有效的Unicode字符?
- 24. 檢查字符是否
- 25. c# - 檢查字符串是否包含字符和數字
- 26. 如何檢查var是否包含unicode字符並將它們轉換爲emojis
- 27. 檢查一個字符串是否全部是數字和10個字符長
- 28. 如何檢查C#變量是否爲空字符串「」或null?
- 29. 如何檢查字符串是否爲常量 - C
- 30. 如何檢查字符串是否爲xxxxx.xxxx格式在c#中?
你確實意識到這個問題是無稽之談。如果你對編碼沒有任何瞭解,字符串就沒有任何意義。請看看這個不錯的藝術,這應該對此事提供一些啓示 - > http://www.joelonsoftware.com/articles/Unicode.html – Pandrei
+1你的問題讓我今天去學習一些東西! – Roddy
@Pandrei我不會推薦那篇文章。雖然它有一兩個有用的觀點,但也有一些錯誤:對於初學者來說,作者似乎不瞭解區別_UCS_和_UTF_。 –