当输入采用Unicode格式时,是否有标准/常用的方式来提供指向行和列的编译器式错误消息?使用Unicode编译器错误消息行/列号编号
例如,一种非常常见的编译器错误信息格式是: “文件名:LINE_NUMBER:COLUMN_NUMBER栏:错误消息”,例如:
- (来自GCC):
bad.c:1:10: syntax error, unexpected STRING
- (从定制工具)
input.dat:45:3: expected String_Literal, found ';'
,
当输入是固定的8位编码,如ISO-8859-1时,这是明确的。但是当输入是Unicode(UTF-8,UTF-16等)时,在这种情况下(或应该)“列”是什么意思?哪个字节?哪个代码点?哪个字素?有没有什么工具可以选择其中的一种呢?
我想我找到了我想要的与您的答案相匹配的东西。扩展字形集群,如http://unicode.org/reports/tr29/中所定义。我可以通过ICU的BreakIterator获得此信息。 – wjl 2012-03-19 15:54:52