當輸入採用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