以下文章來源于FPGA開源工坊 ,作者xiaotudou
我們在日常開發中經常使用sublime、vim、vs code等第三方的編輯器,這些編輯器可以使用很多插件來提高我們的編碼效率,但是也往往會帶來亂碼的問題。我一般使用的是sublime來進行編碼,但是在Vivado里面打開用sublime寫的代碼之后,經常出現中文亂碼,讓人很不舒服。究其原因就是一般來說第三方的編輯器是采用utf8的編碼方式,而vivado的text editor不是這種方式。
為了解決這個問題,我們首先要查詢vivado的編輯器采用了哪種編碼方式,但是在設置里面的text editor里面并沒有找到編碼方式的設置。
這樣我們就只能去修改第三方編輯器的編碼方式了,因為vivado的沒找到在哪里進行修改。并且沒有找到vivado是采用了哪種編碼方式。不過,我們知道不同的編碼方式,文件頭是不一樣的,比如utf8的文件頭是EFBBBF,那么我們就可以去讀取這個文件頭來獲得文件的編碼方式。我就直接采用python里面提供的包來直接解析了,不再自己去寫代碼解析這個文件頭了。
在vivado里面新建了一個testEncode.v的文件,并且在里面隨意寫一點中文,然后采用下面的python代碼去解析這個文件。建議里面中文多寫點,這個包其實是一個概率問題,寫的越多他的準確度越高。
import chardet f = open(r'G: ttt ttt.srcssources_1 ew estEncode.v', 'rb') data = f.read() print(chardet.detect(data))
可以看到是GB2312的編碼方式,這和utf8不一樣,所以導致亂碼就很正常了。我們可以設置我們的第三方編輯器也為這個GB2312或GBK編碼就不會有亂碼了。可以認為GBK是GB2312的一個超集。
下面就測試一下吧:
我們新建一個aaa.v,并用sublime去修改,修改結束后將其添加到vivado的Design Source里面。并在vivado里面打開,發現亂碼了。
下一步在sublime里面修改其為gbk編碼:
設置結束后,重新在vivado里面打開這個文件,發現編碼就正常了。
我這邊是設置為GBK(GB2312)就解決亂碼了。在網上看到一種說法是vivado是采用的ansi碼。或許有人會疑惑ansi碼,你設置為gbk咋解決問題了呢。其實ansi碼在不同的操作系統上是不一樣的,你可以認為是一種本地編碼,比如在簡體中文的Windows操作系統上他就是GBK(GB2312)編碼,除此之外他還可以是Big5這樣的編碼,總之和操作系統有關。所以可以參考這個解決編碼問題的過程,在不同的機器上可能需要設置為不同的編碼方式才能解決這個亂碼問題。
-
VIM
+關注
關注
0文章
134瀏覽量
15316 -
代碼
+關注
關注
30文章
4816瀏覽量
68873 -
編輯器
+關注
關注
1文章
806瀏覽量
31248 -
Vivado
+關注
關注
19文章
815瀏覽量
66769
原文標題:Vivado編輯器亂碼問題
文章出處:【微信號:FPGA開源工坊,微信公眾號:FPGA開源工坊】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論