2013-04-22 203 views
4

我正在使用hfcca來計算C++代碼的圈複雜度。 hfcca是一個簡單的python腳本(https://code.google.com/p/headerfile-free-cyclomatic-complexity-analyzer/)。當我嘗試運行的腳本來生成一個XML文件中我得到以下錯誤的形式輸出:UnicodeDecodeError:'utf-8'編解碼器無法解碼位置434852中的字節0xe2:無效延續字節

Traceback (most recent call last): 
    "./hfcca.py", line 802, in <module> 
    main(sys.argv[1:]) 
    File "./hfcca.py", line 798, in main 
    print(xml_output([f for f in r], options)) 
    File "./hfcca.py", line 798, in <listcomp> 
    print(xml_output([f for f in r], options)) 
    File "/x/home06/smanchukonda/PREFIX/lib/python3.3/multiprocessing/pool.py", line 652, in next 
    raise value 
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe2 in position 434852: invalid continuation byte 

請幫我這個..

+1

程序說XML包含無效字符,所以我們需要看到XML – Mark 2013-04-22 13:30:46

回答

9

問題看起來像文件有用拉丁文字符1表示的字符不是utf8中的字符。該file實用程序可爲搞清楚什麼編碼文件應被視爲,如有用:

[email protected]:~$ file foo.txt 
foo.txt: UTF-8 Unicode text 

這裏是字節意味着LATIN1:

>>> b'\xe2'.decode('latin1') 
'â' 

也許最簡單的是將文件轉換成UTF8。

+1

是0xe2,它是引入多字節代碼的urf-8位模式之一。後續字節會更有趣。無論如何,你是對的,它最容易將整個文件轉換爲utf-8。 – collapsar 2013-04-22 13:46:13

相關問題