Chinaunix

标题: 请教如何把§替换成换行符 [打印本页]

作者: tsubasawzj    时间: 2012-02-22 12:08
标题: 请教如何把§替换成换行符
  1. $chapterContent=~ s/\ufffffa7d/\n/g;

  2. $chapterContent=~ s/§/\n/g;
复制代码
都不行。。。
作者: tsubasawzj    时间: 2012-02-22 12:11
我尝试直接在命令行下
  1. sed 's/§/\n/g' 1.xml
复制代码
这个是没问题的。。

1.zip

7.76 KB, 下载次数: 11


作者: wxlfh    时间: 2012-02-22 13:52
应该和字符串儿编码有关。
作者: ttcn_cu    时间: 2012-02-22 18:55
编码问题
想在源文件里用utf8字符,可以把源文件存成不带BOM的utf8 编码文件
#!perl
use utf8;
binmode STDOUT,":utf8";
while(<DATA>){
        s/§/\n/g;
        print;

}
__DATA__
(XML里的内容)
作者: tsubasawzj    时间: 2012-02-23 16:48
回复 4# ttcn_cu

恩恩,是编码问题
一开始,我添加了
use encoding "utf-8";

使得在perl里无法识别§

后来我去掉了use encoding "utf-8";
添加了utf8::encode($chapterContent);
就能正常识别§了~


   
作者: horsley    时间: 2012-02-23 22:24
先做 decode 转化成 perl 内部使用的 utf-8,替换后再用  encode 转化成你的 locales 支持的编码。
perl 的正则表达式支持 utf-8 ,不支持 gbk 之类的。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2