免费注册 查看新帖 |

Chinaunix

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

部分gb18030 CJK字符在正則表達式中的問題 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-24 17:44 |只看该作者 |倒序浏览
$fw1 = "區kwui1";
$fw2 = "別bid6";

$fw1 =~ s/[^a-z0-9]+|\s+//g;
$fw2 =~ s/[^a-z0-9]+|\s+//g;

print "$fw1\n";
print "$fw2\n";


執行腳本,結果 $fw2 出人意料,竟然是 ebid6 ,而不是意料中的 bid6
可能又是跟「別」字的 gb18030 內碼有關
這裏不好用\Q\E
且因 gb18030 中CJK字符編碼字節數不定,換了其他CJK字符字節數長短會有變化,也不好用 substr 強取規定的多少個字節
如何才能避免這種意外發生,得到想要的結果呢?

[ 本帖最后由 Calvin00 于 2006-5-24 17:53 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-05-24 17:58 |只看该作者
用这一招:
  1. use Encode;

  2. $fw1 = "區kwui1";
  3. $fw2 = "別bid6";

  4. $fw2 = decode( 'gb18030', $fw2 );
  5. $fw1 =~ s/[^a-z0-9]+|\s+//g;
  6. $fw2 =~ s/[^a-z0-9]+|\s+//g;
  7. $fw2 = encode( 'gb18030', $fw2 );

  8. print "$fw1\n";
  9. print "$fw2\n";
复制代码


建议阅读:
http://bbs.chinaunix.net/viewthr ... &extra=page%3D2
汗~~
这个也是你发的帖子,不知道给你的回复你看了没?
BS 你!

论坛徽章:
0
3 [报告]
发表于 2006-05-24 18:30 |只看该作者
Unknown encoding 'gb18030' a E:\t.pl line 6.

你有所不知,我這裏網路受限,沒有辦法通過ppm安裝擴展模組。

论坛徽章:
0
4 [报告]
发表于 2006-05-24 20:45 |只看该作者
直接 download http://search.cpan.org/CPAN/auth ... anExtra-0.10.tar.gz
然后解压,在命令提示符下进入解压得到的目录,依次执行:
  1. perl Makefile.PL
  2. nmake
  3. nmake install
复制代码

就好了。
nmake 程序可以从微软的网站上下载到,
如果你安装了 VC OR VS.NET 的话,就不用下载了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP