我已将 DOT 代码文件保存为 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="??.png"];
DS [shape=plaintext, fontname="SimSun", fontcolor=white, fontsize=18, label="??"];
BR -> DS[dir=forward];
}
Run Code Online (Sandbox Code Playgroud)
命令行的结果如下所示。
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"
Run Code Online (Sandbox Code Playgroud)
链中某处存在编码问题。源中的图像文件名是\xe5\x9b\xbe\xe5\x85\x83.png,但是当 graphviz 读取它时,它会看到\xe9\x8d\xa5\xe6\x83\xa7\xe5\x8e\x93.png.
这表明您没有将文件保存为 UTF-8,或者您的操作系统的默认编码不是 UTF-8。我找不到一种方法来告诉 graphviz 文档中源的编码。该选项charset仅在“将字符串输入解释为文本标签时”使用。(另请参阅“字符编码”)
所以它不会解决你的问题。一种解决方案是用 HTML 实体替换 Unicode 字符。因此,您可以使用"圖元.png"但再次,文档说“在标签评估期间,这些实体被翻译”,这可能意味着它们在其他任何地方都没有被翻译。
| 归档时间: |
|
| 查看次数: |
1082 次 |
| 最近记录: |