Unicode字母数字字符范围
我正在看Windows API函数。因为它只需要一个TCHAR,所以显然无法对UTF16内容的代理项对做出任何决定。这是否意味着不存在作为代理项对的字母数字字符?您可以通过查看无法检查非BMP代码点而丢失的内容来确定自己Unicode字母数字字符范围,unicode,Unicode,我正在看Windows API函数。因为它只需要一个TCHAR,所以显然无法对UTF16内容的代理项对做出任何决定。这是否意味着不存在作为代理项对的字母数字字符?您可以通过查看无法检查非BMP代码点而丢失的内容来确定自己 例如,您将无法将帝国阿拉姆文字识别为字母数字。羞耻。BMP之外的字符可以是字母。(迈克尔·卡普兰最近)但是,IsCharAlphaNumeric无法看到BMP之外的字符(出于您提到的原因),因此您无法通过这种方式获取这些字符的分类信息 如果您有一个代理项对,请使用cchSrc=
例如,您将无法将帝国阿拉姆文字识别为字母数字。羞耻。BMP之外的字符可以是字母。(迈克尔·卡普兰最近)但是,
IsCharAlphaNumeric
无法看到BMP之外的字符(出于您提到的原因),因此您无法通过这种方式获取这些字符的分类信息
如果您有一个代理项对,请使用cchSrc=2
调用GetStringType
,并检查C1\u ALPHA
和C1\u DIGIT
编辑:此答案的后半部分不正确
这是否意味着不存在作为代理项对的字母数字字符
否,字母组中有补充代码点
例如,Character.isleter('\uD840')
返回false
,即使该特定值后跟字符串中任何较低的代理项值将表示字母