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