Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 检查unicode引号是否处于打开或关闭状态_C++_Unicode_Icu - Fatal编程技术网

C++ 检查unicode引号是否处于打开或关闭状态

C++ 检查unicode引号是否处于打开或关闭状态,c++,unicode,icu,C++,Unicode,Icu,我正在写一个lexer,需要找到字符串的边界。这些字符串可以使用Unicode字符(即左“和右”双引号)引用,这些字符可以区分字符串中的字符串等内容 为了测试Unicode字符属性,我正在使用ICU4C库 我目前使用u\u hasbaryaryproperty(cp,UCHAR\u引号)测试引号 这对于查找引号本身很有效,但在区分开放报价和封闭报价方面存在不足 是否有一些属性值或其他功能可用于测试引号的方向,而无需针对每种可能的引号类型进行明确测试?引号是否打开或关闭取决于语言/区域设置,因此超

我正在写一个lexer,需要找到字符串的边界。这些字符串可以使用Unicode字符(即左
和右
双引号)引用,这些字符可以区分字符串中的字符串等内容

为了测试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大多数代码点有不止一个属性,这些属性可以是非二进制的(例如数值属性)。我基本上是问一个“哪个方向”的属性,适用于报价。