- 论坛徽章:
- 0
|
Part D. 关于 Unicode
或许有些朋友对用 Perl 进行 Unicode 编码感兴趣,补充两个小程序。
在忘记密码的环节里,邮件里的标题依然是乱码,这里提供了修正版。
1) 推荐代码
type u1.pl {执行时候请用 perl u1.pl 你好}
<----------
use Encode;
use Unicode::UCD 'charinfo';
$str=decode('gb2312',shift);
# 由于系统环境为gb2312,所以cmd后的中文参数也为
# gb2312编码,因此告诉perl先把shift得到的参数按
# gb2312解码成unicode
$a=charinfo(unpack 'U',$str);
for(keys %$a)
{
print "$_ ==> $a->{$_}\n";
}
---------->
type u2.pl {执行时候请用 perl u2.pl 你好}
<----------
use Encode;
use Unicode::UCD;
$str=decode('GBK',shift);
# 由于系统环境为gb2312,所以cmd后的中文参数也为
# gb2312编码,因此告诉perl先把shift得到的参数按
# gb2312解码成unicode
$str = encode('MIME-Q', $str);
print $str;
---------->
2) 运行结果
H:\Usr\bin>perl u2.pl 系统更改密码请求
=?UTF-8?Q?=E7=B3=BB=E7=BB=9F=E6=9B=B4=E6=94=B9=E5=AF=86=E7=A0=81=E8=AF=B7?=
=?UTF-8?Q?=E6=B1=82?=
H:\Usr\bin>perl u2.pl 系统更改密码请
=?UTF-8?Q?=E7=B3=BB=E7=BB=9F=E6=9B=B4=E6=94=B9=E5=AF=86=E7=A0=81=E8=AF=B7?=
H:\Usr\bin>perl u2.pl 请求
=?UTF-8?Q?=E8=AF=B7=E6=B1=82?=
3) 邮件模版
从上推断出 template\cn\default\account\password\forgotten-password.txt.tmpl
[% PROCESS global/variables.none.tmpl %]
[% expiration_ts = token_ts + (max_token_age * 86400) %]
From: bugzilla-admin-daemon
To: [% emailaddress %]
Subject: [% terms.Bugzilla %]=?UTF-8?Q?=E7=B3=BB=E7=BB=9F=E6=9B=B4=E6=94=B9=E5=AF=86=E7=A0=81=E8=AF=B7=E6=B1=82?=
Content-Type: text/plain; charset="UTF-8"
Mime-Version: 1.0
系统更改密码请求:
你(或者是其他的某个人)申请改变你的[%+ terms.Bugzilla %]密码。
如果确认这个改变,请访问下面的链接:
[%+ Param('urlbase') %]token.cgi?t=[% token FILTER url_quote %]&a=cfmpw
如果你不是这个请求的申请者,或者想放弃这个请求,请访问下面的链接:
[%+ Param('urlbase') %]token.cgi?t=[% token FILTER url_quote %]&a=cxlpw
如果你不进行任何操作,那么在 [%+ max_token_age +%] 日
(即 [%+ time2str("%H:%M on the %o of %B, %Y", expiration_ts) -%]) 后,
或者在你下次成功登录后,该申请将会自动失效。
Part E. MySQL 故障
使用 Bugzilla 连接 MySQL 时会告诉你数据库连接失败,其实这是因为密码算法更新了。
1) 参考网址
http://www.cnblogs.com/huqingyu/archive/2004/12/09/74989.html
http://www.kehui.net/html/article/39/39822.html
http://www.phpv.net/article.php/288
http://dev.mysql.com/doc/mysql/en/old-client.html
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2) 解决方案
C:\> mysql -u root -p
mysql> \u mysql
mysql> select user,host,password from user;
mysql> set password for 'bugs'@'localhost' = old_password('bugs');
mysql> set password for 'bugs'@'%' = old_password('bugs');
mysql> select user,host,password from user;
Part F. Perl 故障
1) 参考网址
http://www.bugzilla.org/docs/win32install.html
http://blog.csdn.net/emu/archive/2005/03/15/320326.aspx
在apache下发布了bugzilla
couldn't create child process — 原来是无法创建子过程。看来是没有找到perl.exe。
2) 解决方案
把下面这个东西保存为 Perl.reg,然后鼠标双击导入就可以了。请注意修改
安装路径 [HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command]。
<-----------------------------------------------------
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.cgi]
@="ActivePerl"
[HKEY_CLASSES_ROOT\.cgi\Shell]
[HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI]
[HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command]
@="H:\\Server\\Lang\\Perl\\bin\\perl.exe -T"
----------------------------------------------------->
[[i] 本帖最后由 wwashington 于 2006-9-6 00:44 编辑 [/i]] |
|