C++ 检查unicode引号是否处于打开或关闭状态
我正在写一个lexer,需要找到字符串的边界。这些字符串可以使用Unicode字符(即左C++ 检查unicode引号是否处于打开或关闭状态,c++,unicode,icu,C++,Unicode,Icu,我正在写一个lexer,需要找到字符串的边界。这些字符串可以使用Unicode字符(即左“和右”双引号)引用,这些字符可以区分字符串中的字符串等内容 为了测试Unicode字符属性,我正在使用ICU4C库 我目前使用u\u hasbaryaryproperty(cp,UCHAR\u引号)测试引号 这对于查找引号本身很有效,但在区分开放报价和封闭报价方面存在不足 是否有一些属性值或其他功能可用于测试引号的方向,而无需针对每种可能的引号类型进行明确测试?引号是否打开或关闭取决于语言/区域设置,因此超
“
和右”
双引号)引用,这些字符可以区分字符串中的字符串等内容
为了测试Unicode字符属性,我正在使用ICU4C库
我目前使用u\u hasbaryaryproperty(cp,UCHAR\u引号)
测试引号
这对于查找引号本身很有效,但在区分开放报价和封闭报价方面存在不足
是否有一些属性值或其他功能可用于测试引号的方向,而无需针对每种可能的引号类型进行明确测试?引号是否打开或关闭取决于语言/区域设置,因此超出了Unicode的范围。Unicode只处理脚本。示例:
- «瑞士»
- »抛光«
- »芬兰语»
请看别处。引号是开始还是结束取决于语言/区域设置,因此超出了Unicode的范围。Unicode只处理脚本。示例:
- «瑞士»
- »抛光«
- »芬兰语»
看看别处。。。。为什么显而易见的解决方案(针对Unicode开放报价代码点进行测试)不可行?我不是Unicode专家,但我的印象是,只有一个开放引号代码点,对吗?@Nicolas它只是觉得针对单个字符而不是它们的属性进行测试是“错误的”或“非Unicode的”。可能只是我必须咬紧牙关,使用代码点。也许你误解了Unicode属性的意义。例如,“引号”属性用于判断代码点是否为引号。就这样。属性的存在并不是为了能够唯一地标识代码点的每个方面。你不能仅仅通过检查U+0041的属性就知道它的一切。@Nicolas大多数代码点有不止一个属性,这些属性可以是非二进制的(例如数值属性)。我基本上是在问一个“哪个方向”的属性,它适用于引语。。。。为什么显而易见的解决方案(针对Unicode开放报价代码点进行测试)不可行?我不是Unicode专家,但我的印象是,只有一个开放引号代码点,对吗?@Nicolas它只是觉得针对单个字符而不是它们的属性进行测试是“错误的”或“非Unicode的”。可能只是我必须咬紧牙关,使用代码点。也许你误解了Unicode属性的意义。例如,“引号”属性用于判断代码点是否为引号。就这样。属性的存在并不是为了能够唯一地标识代码点的每个方面。你不能仅仅通过检查U+0041的属性就知道它的一切。@Nicolas大多数代码点有不止一个属性,这些属性可以是非二进制的(例如数值属性)。我基本上是问一个“哪个方向”的属性,适用于报价。