免费注册 查看新帖 |

Chinaunix

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

perl 中替换中文字符的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-12-15 11:10 |只看该作者 |倒序浏览
大神们好,我现在想把“医院地址” 替换成 hospital
如下代码:

  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use Encode;

  5. my $str2 = encode('utf8', '医院地址:');  
  6. my $str4 = encode('utf8', 'hospital');  
  7. #open (DATA,"<D:/14-perl/test1.txt");
  8.         while (<DATA>) {
  9.                 my $str3= encode('utf8','医院地址:test'); ## 能替换
  10.         #        my $str3= encode('utf8',$_);   ## 不能替换
  11.                 $str3=~s/$str2/hospital/g;
  12.                 print decode('utf8',$str3)."\n";
  13. }
  14. #close (DATA);

  15. __DATA__
  16. 医院地址
  17. 联系电话
  18. 医院地址
  19. 医院网站
复制代码

不知道为什么,替换不了。
能帮忙解答一下吗?

论坛徽章:
0
2 [报告]
发表于 2016-12-15 11:39 |只看该作者
另外,我用自己的编码 直接 替换是可以的
s/医院地址/hospital/g;

但如果把数据保存到文本中,就不可以了。说明还是编码的问题,知道这一块怎么办,不过搞不定。

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
3 [报告]
发表于 2016-12-16 00:29 |只看该作者
  1. use utf8;
复制代码

论坛徽章:
0
4 [报告]
发表于 2016-12-16 14:43 |只看该作者
我是这样处理的:

用Tk显示:
my $sel = '请选择';
my $ok = '确定';
chinese($sel);
chinese($ok);

sub chinese {  #
    $_[0]=decode("gb2312",$_[0]);
}

一般中文处理显示的话,可以这样:

print encode("gb2312",$sel);

可以去看看encode相关技术文件

论坛徽章:
0
5 [报告]
发表于 2016-12-16 16:37 |只看该作者
回复 3# sunzhiguolu

刚搞定,是IDE搞的事,我这里用eclipse写的代码并执行,结果就是不对的,放到perl环境下面执行就可以,谢谢。~

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
6 [报告]
发表于 2016-12-16 18:41 |只看该作者
回复 5# xiaomifeng789
以前我也遇到过这个问题, 不过折腾了好多次才搞定。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP