免费注册 查看新帖 |

Chinaunix

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

CGI::escapeHTML导致部分字乱码? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-25 15:16 |只看该作者 |倒序浏览
mysql5 debian testing 默认安装, 没作任何改动
perl5.10 同上

数据库:
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
SET character_set_client = @saved_cs_client;

apache2默认是iso8859-1

perl程序http header -charset=>utf8


症状是部分的中文乱码:  比如张学友: 张学

论坛徽章:
0
2 [报告]
发表于 2008-07-25 15:42 |只看该作者
第一个问题解决了: $cgi->charset('utf-8');


  1. $perl -MCGI -e'print CGI::escapeHTML("学友"), "\n"'
  2. 学å‹


  3. 因为
  4. sub escapeHTML {
  5. ...
  6.          my $latin = uc $self->{'.charset'} eq 'ISO-8859-1' ||
  7.                      uc $self->{'.charset'} eq 'WINDOWS-1252';
  8.          if ($latin) {  # bug in some browsers
  9. ...
  10.                 $toencode =~ s{\x8b}{‹}gso;
  11. ...
  12.          }

复制代码

[ 本帖最后由 dajun 于 2008-7-25 15:44 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP