不能使用utf-8编码的图像文件名来自定义节点形状

时间:2011-12-06 07:41:45

标签: graphviz

我用utf-8编码保存了DOT代码文件。但它无法输出具有自定义形状的png图像文件。是否有一个示例来演示用户指定的graphviz charset用法?

演示代码在这里。

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"

1 个答案:

答案 0 :(得分:0)

链中某处存在编码问题。源中的图像文件名是图元.png,但当graphviz读取它时,它会看到鍥惧厓.png

这表示您没有将文件保存为UTF-8,或者您的操作系统的默认编码不是UTF-8。我找不到一种方法来告诉graphviz文档中源代码的编码。选项charset仅用于“将字符串输入解释为文本标签时”。 (另见“Character encodings”)

所以它不会解决你的问题。一种解决方案是用HTML实体替换Unicode字符。所以你可以使用"圖元.png"但是再一次,文档说“在标签评估过程中,这些实体被翻译了”,这可能意味着它们没有被翻译到其他地方。