cacti 图片中文乱码问题

转载时请标明文章原始出处和作者信息, 作者: lostsnow.
http://www.lsproc.com/blog/cacti_graph_with_chinese/

首先你需要一个中文字体
如simsun 等
将它放进 /usr/share/fonts目录中

然后执行下面的命令刷新字体缓存

fc-cache -f -v

然后再cacti 中设置 默认字体的路径为你使用的中文字体的路径

测试发现, 字体只能放到系统字体路径当中, 并要刷新字体缓存

-- EOF --

解决webalizer 汉化后图表中乱码的问题

转载时请标明文章原始出处和作者信息, 作者: lostsnow.
http://www.lsproc.com/blog/webalizer_graphs_bad_encode/

代码如下(webalizer_patch.pl):

#!/usr/bin/perl
######################################################
# webalizer_patch.pl
# 原作:http://mail.tses.tcc.edu.tw/nuke/sections.php?op=viewarticle&artid=139
# 修改:陶然 <taoran@taoran.net>
# 功能: 解决HTML汉化后图表中乱码的问题
# 方法:图表中乱码改用英文显示就正常了
#       需要修改: graphs.c output.c webalizer_lang.h lang.h
#
# tar zxf webalizer-2.01-10-src.tgz
# cd webalizer-2.01-10
# ./configure --with-language=simplified_chinese
# perl /path/of/webalizer_patch.pl ./
# make
# make install
#
####################################################
$file_graph	= "$ARGV[0]/graphs.c";
if(!(-e $file_graph))   {
	print "error open  $file_graph
";
	print "Usage:
  perl $0  DIR
";
#DIR是源文件目录,比如 ./
	exit;
}

#把图表中的月份和注释改成英文
@old_var	= ("msg_h_hits",
		"msg_h_pages",
		"msg_h_visits",
		"msg_h_files",
		"msg_h_sites",
		"msg_h_xfer",
		"s_month");

@new_var	= ("msg_gh_hits",
		"msg_gh_pages",
		"msg_gh_visits",
		"msg_gh_files",
		"msg_gh_sites",
		"msg_gh_xfer",
		"s_gmonth");

open(IN,"<$file_graph");
@lines	= <IN>;
$size	= @lines;
close(IN);

`mv $file_graph $file_graph.bak`;
open(OUT,">$file_graph");
for($i=0;$i<$size;$i++)   {
	for($k=0;$k<@old_var;$k++)   {
		if($lines[$i] =~ s/$old_var[$k]/$new_var[$k]/g)   {
			print "$i	$old_var[$k] -> $new_var[$k]
";
			print OUT "/* --- Modified --- */
";
		}
	}
	print OUT $lines[$i];
}
close(OUT);

#把图表中的标题改成英文显示
$file_output	= "$ARGV[0]/output.c";
open(IN,"<$file_output");
@lines	= <IN>;
$size	= @lines;
close(IN);
`mv $file_output $file_output.bak`;
open(OUT,">$file_output");
for($i=0;$i<$size;$i++)   {
	if($lines[$i] =~ s/msg_hmth_du,l_month/"Daily Usage for",s_gmonth/xg) {
		print "$i	patched
";
		print OUT "/* --- Modified --- */
";
	} elsif($lines[$i] =~ s/msg_hmth_hu,l_month/"Hourly Usage for",s_gmonth/xg) {
		print "$i	patched
";
		print OUT "/* --- Modified --- */
";
	} elsif($lines[$i] =~ s/msg_ctry_use,l_month/"Usage by Country for",s_gmonth/xg) {
		print "$i	patched
";
		print OUT "/* --- Modified --- */
";
	} elsif($lines[$i] =~ s/msg_main_us/"Usage summary for"/xg) {
		print "$i	patched
";
		print OUT "/* --- Modified --- */
";
	}
	print  OUT $lines[$i];
}
close(OUT);

#加入新的函数给前面显示的程序用 

print "
patch	$ARGV[0]/webalizer_lang.h
";

$file_lang	= "$ARGV[0]/webalizer_lang.h";
open(OUT,">>$file_lang");
print OUT qq~
/* --- start Add  ---*/
char *msg_gh_hits  = "Hits";
char *msg_gh_pages = "Pages";
char *msg_gh_visits= "Visits";
char *msg_gh_files = "Files";
char *msg_gh_sites = "Sites";
char *msg_gh_xfer  = "KBytes";

char *s_gmonth[12]={ "Jan", "Feb", "Mar",
                    "Apr", "May", "Jun",
                    "Jul", "Aug", "Sep",
                    "Oct", "Nov", "Dec"};

/* -------------End------------- */
~;

#补充声明这些新加的函数
print "
patch	$ARGV[0]/lang.h
";

$file_lang	= "$ARGV[0]/lang.h";
open(OUT,">>$file_lang");
print OUT qq~
/* --- start Add  ---*/
extern char *msg_gh_hits  ;
extern char *msg_gh_pages ;
extern char *msg_gh_visits;
extern char *msg_gh_files ;
extern char *msg_gh_sites ;
extern char *msg_gh_xfer  ;
extern char *s_gmonth[12];
/* -------------End------------- */
~;

print "Done ^_^
";

####################################################

-- EOF --

再谈WordPress的MySQL乱码问题解决方法

转载时请标明文章原始出处和作者信息, 作者: lostsnow.
http://www.lsproc.com/blog/mysql_encode_error_in_wordpress/

在MySQL4.1下,中文的WP就会产生种种的乱码问题。

一个程序( PHP,CGI 等)与MySQL建立连接后,这个程序发送给MySQL的数据采用的是什么字符集,MySQL 是无从得知的。所以解决乱码问题的根本就是我们在程序中告诉MySQL采用的编码是什么,简单的就是在程序中加入这样的一个语句:

SET NAMES 'utf8';

这个语句的效果等同于同时设定了

SET character_set_client='utf8';
SET character_set_connection='utf8';
SET character_set_results='utf8';

为什么这么做?

我们安装MySQL4.1时按照默认配置,那么default-character-set= utf8。在MySQL Command Line Client下查看到的查看系统的字符集和排序方式的设定为:

Continue reading

-- EOF --

一切又重新开始了

转载时请标明文章原始出处和作者信息, 作者: lostsnow.
http://www.lsproc.com/blog/all-restart/

昨天下午mysql出了点问题,结果导致blog的数据全部丢失,虽然有备份但是恢复回来出现很多乱码,整了半天最后还是放弃了,只好重新再来吧。 还是讨厌的InnoDB惹的祸,现在汉字改成了NCR(Numeric character reference) 来表示,以后就不怕乱码的问题了。

-- EOF --