Vivado编辑器乱码问题

作者: xiaotudou,文章转载自:FPGA开源工坊

我们在日常开发中经常使用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:\tttt\tttt.srcs\sources_1\new\testEncode.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这样的编码,总之和操作系统有关。所以可以参考这个解决编码问题的过程,在不同的机器上可能需要设置为不同的编码方式才能解决这个乱码问题。

最新文章

最新文章