免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7169 | 回复: 3
打印 上一主题 下一主题

使用graphviz 中文乱码问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-02 09:59 |只看该作者 |倒序浏览
在网上查的资料都是在fontname 指定字体,程序文件已经utf-8编码存,可是生成的图片,中文部分还是乱码
大家有用到么?

  1. digraph finite_state_machine {
  2. rankdir=LR;
  3. size="8,5"
  4. node [fontname="/usr/local/test/font/simhei.ttf"]; LR_0 LR_3 LR_4 LR_8;
  5. edge [fontname="/usr/local/test/font/simhei.ttf"];
  6. LR_0 -> LR_2 [ label = "测试" ];
  7. LR_0 -> LR_1 [ label = "中文" ];
  8. LR_1 -> LR_3 [ label = "S($end)" ];
  9. }
复制代码



--perl 程序--
  1. use GraphViz;
  2. use Encode;

  3. my $g = GraphViz->new();
  4. open(FH,"zhongwen") or die $!;
  5. my $str=<FH>;
  6. close FH;
  7. print $str;
  8. my $strs=encode("utf-8",$str);
  9. print $strs;

  10. $g->add_node('London');
  11. $g->add_node('Paris', label => "$strs", rank => 'top' ,fontname => "/usr/local/test/font/simhei.ttf",fontsize  =>'5');
  12. $g->add_node('New York');
  13. $g->add_node('Boston', rank => 'top',style =>'filled',color=>'red',shape=>'box');

  14. $g->add_edge('Paris' => 'London');
  15. $g->add_edge('London' => 'New York', label => 'Far');
  16. $g->add_edge('Boston' => 'New York');
  17. $g->add_edge('New York' => 'Boston');

  18. $g->as_png("rank.png");
复制代码

论坛徽章:
0
2 [报告]
发表于 2009-12-02 10:03 |只看该作者
图片一般用GD生成的,这个很麻烦,你要去设置GD::Text的属性:
http://search.cpan.org/~mverb/GDTextUtil-0.86/Text.pm

论坛徽章:
0
3 [报告]
发表于 2009-12-02 10:05 |只看该作者
我是生成结构图,用GD没个弄

论坛徽章:
0
4 [报告]
发表于 2009-12-02 10:12 |只看该作者

回复 #3 sunkez 的帖子

不太清楚你的case~
你那个模块应该也是call GD for generating an image.
我以前在web里搞过GD的字体,总之是比较麻烦。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP