介绍

NetBox 在导出CSV的时候,会是使用UTF-8编码,而不是UTF-8-SIG编码。

这样会导致导出的文件,在微软的Excel打开中会乱码。(使用Notepad ++不会)

NetBox 系列文章:https://songxwn.com/categories/NetBox/

思路

直接修改Netbox 虚拟环境的 django_tables2 库的默认编码,这样只要不升级或重装此库就不会失效。

修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
vim /opt/netbox/venv/lib/python3.9/site-packages/django_tables2/export/export.py

# 修改库文件,路径看自己的实际情况。


FORMATS = {
CSV: "text/csv; charset=utf-8-sig",
JSON: "application/json",
LATEX: "text/plain",
ODS: "application/vnd.oasis.opendocument.spreadsheet",
TSV: "text/tsv; charset=utf-8",
XLS: "application/vnd.ms-excel",
XLSX: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
YAML: "text/yaml; charset=utf-8",
}

在第37行,直接修改为utf-8-sig,然后重启NetBox即可。

systemctl restart netbox netbox-rq