首页 > tips, TroubleShooting > cacti里图上title中显示中文的问题

cacti里图上title中显示中文的问题

2011年12月21日 发表评论 阅读评论

系统环境:centos6+cacti0.8.7g
用Aggregate做了几个聚合图,方法前面有提到。
在创建新的图的时候,在title里有中文字符,存取数据库都没有问题,但是在显示的图上,中文字符没有了,原本以为是rrdtool不支持中文导致,打开debug模式一看,才知道,原来在执行生成图的rrdtool的”–title”参数里,中文字符就没有了,这显然不是rrdtool的问题了,而应该是cacti的问题。翻了下cacti的代码,在文件lib/rrd.php里,有一句:

"--title=" . cacti_escapeshellarg($graph["title_cache"]) . RRD_NL .

,而在lib/functions.php里关于cacti_escapeshellarg函数的定义里,将其直接用函数escapeshellarg函数替代(因为

$config["cacti_server_os"] == "unix"

成立)
于是又着重找了找php函数escapeshellarg过滤中文字符的资料,果然有说法,说是LC_CTYPE是缺省值”C”导致,也提了解决方法,就是在文件lib/functions.php中的最前方,显式的将LC_CTYPE设置正确。具体的解决办法如下:
在文件lib/functions.php的最前面,添加一句代码:

setlocale(LC_CTYPE, "UTF8", "en_US.UTF-8");

保存,再一刷页面,OK了。

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.