Graphviz不支持UTF-8编码

时间:2011-07-19 07:02:33

标签: utf-8 character-encoding graphviz

我创建了一个点文件。在某个节点的标签中包含一些韩语。在graphvig工具的帮助下创建了png文件,但创建的png不支持韩文语言,它显示为方框。如果我创建svg文件然后它工作正常。 帮我解决这个问题。

5 个答案:

答案 0 :(得分:4)

还可以尝试运行dot -v来查看正在加载的插件和字体文件。通常我们期望UTF-8能够工作(多年来已经完成了很多工作),并且通过cairopango驱动程序的文本布局运行良好。一个缺点是pango现在进行自己的字体查找,这在某种程度上是其他代码的黑盒子。 (pango最近放弃了fontconfig,这是可以理解的。我们没有找到一种方法来确定fontconfig是否找不到给定规范的良好匹配 - 当它找不到任何其他匹配时,它会愉快地返回例如打字机字体。)希望这有所帮助。 Stephen North(适用于graphviz项目)

答案 1 :(得分:3)

我遇到了同样的问题,当生成.png文件时,非ascii字符无法正确呈现。

我的替代解决方案是使用.svg输出(通过某些命令,如:dot -Tsvg my_graph.gv),这会将字体查找问题留给svg查看器。

您可以使用Web浏览器打开.svg文件。如果您坚持采用save as格式,大多数网络浏览器还支持.svg功能将.png文件转换为.png

希望这有用

答案 2 :(得分:0)

使用工具将SVG文件转换为PNG文件。我建议Batik。当然,你必须处理安装字体。或者,您可以使用Inkscape,但这只是一个手动过程。

答案 3 :(得分:0)

确保在图表中定义韩语fontname

答案 4 :(得分:0)

我遇到了同样的问题,添加以下几行对我有帮助:

strict digraph { 
node [ fontname="Adobe Kaiti Std" ];
edge [ fontname="Adobe Heiti Std" ];
}