当我使用libunibreak库中的set_word_breaks_utf32()
来浏览单词时,发现单个字母单词(即英文中的'a',中文中的'北'...)消失,因为它们始终评估为WORDBREAK_BREAK,因此无法与周围的空白区分开来。下面的代码演示了这个问题:使用libunibreak无法区分单个字符
#include <stdio.h>
#include "wordbreak.h"
int main(int argc, const char* argv[]) {
int i;
uint32_t text[] = { 'T', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', ' ', 't', 'e', 's', 't', '.', '\n' };
char breaks[1024];
size_t length = sizeof(text)/sizeof(text[0]);
set_word_breaks_utf32(text, length, "", breaks);
for(i = 0; i < length; i++) putchar(text[i]);
for(i = 0; i < length; i++) putchar(breaks[i] + '0');
putchar('\n');
return 0;
}
这段代码的输出清楚地表明,字母“A”是从周围的空白没有区别:
This is a test.
1110010000111000
我能做些什么,以确保边界单个字母的单词在set_word_breaks_utf32()
输出中可以区分吗?
[道歉使用line-breaks
标签,但标签word-break
有关CSS属性]
为什么它是这个问题? –
@Lashane我需要一次能够在文本字段中导航一个单词,而单个字母单词目前正在完全跳过,因为我从来没有看到从“WORDBREAK_NOBREAK”到“WORDBREAK_BREAK”的转换。 –
为什么你使用单词中断信息来浏览单词? –