Graphviz 无法使用utf-8编码的图像文件名来自定义节点形状
我已经用utf-8编码保存了点代码文件。但无法输出具有自定义形状的png图像文件。是否有一个示例演示graphviz的用户指定字符集用法 演示代码在这里Graphviz 无法使用utf-8编码的图像文件名来自定义节点形状,graphviz,Graphviz,我已经用utf-8编码保存了点代码文件。但无法输出具有自定义形状的png图像文件。是否有一个示例演示graphviz的用户指定字符集用法 演示代码在这里 digraph G { bgcolor=black; edge [arrowsize=1, color=red]; node [penwidth=1, color=white, labelloc=b]; BR [shape=box, label="BR", charset="utf-8", image="图
digraph G {
bgcolor=black;
edge [arrowsize=1, color=red];
node [penwidth=1, color=white, labelloc=b];
BR [shape=box, label="BR", charset="utf-8", image="图元.png"];
DS [shape=plaintext, fontname="SimSun", fontcolor=white, fontsize=18, label="测点"];
BR -> DS[dir=forward];
}
命令行的结果如下所示
C:\dot>dot -Gcharset=utf-8 -Tpng -o demo.png demo.dot
Warning: No such file or directory while opening 鍥惧厓.png
Warning: No or improper image="鍥惧厓.png" for node "BR"
链中的某个地方存在编码问题。源中的图像文件名为
图元.png
但是当graphviz读取它时,它会看到鍥惧厓.png
这表明您没有将文件保存为UTF-8,或者操作系统的默认编码不是UTF-8。我找不到一种方法来告诉graphviz文档中源代码的编码。选项charset
仅在“将字符串输入解释为文本标签时”使用。(另请参见“”)
所以它不会解决你的问题。一种解决方案是用HTML实体替换Unicode字符。因此,您可以使用
”圖;元;.png“
,但同样,文档中说“在标签评估期间,这些实体被翻译”,这可能意味着它们不会在其他任何地方翻译。GraphViz使用iconv转换编码。为什么不能使用utf-8映像文件名?在Mac OS扩展(日志)文件系统的OS X 10.6.8上,它对我来说很好用。您使用的是什么操作系统,文件在什么类型的文件系统上?Graphviz默认使用UTF-8编码来解析图形,因此不需要在命令行中指定,也不需要在节点定义中指定。但它可能没有尝试转换文件名编码你在这里也问了很多问题;您应该在每个堆栈溢出帖子中只问一个问题。