<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://guanyuchu.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fguanyuchu.spaces.live.com%2fcategory%2fPerl%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>NULL? RETURN RANDOM: Perl</title><description /><link>http://guanyuchu.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=catPerl</link><language>en-US</language><pubDate>Mon, 29 Sep 2008 07:23:02 GMT</pubDate><lastBuildDate>Mon, 29 Sep 2008 07:23:02 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://guanyuchu.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>-1647232452633345463</live:id><live:alias>guanyuchu</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>EUC-CN 编码</title><link>http://guanyuchu.spaces.live.com/Blog/cns!E923DACFCE4B4249!299.entry</link><description>从 5.8.0 版开始, Perl 具备了完善的 Unicode (统一码) 支援, 也连带支援了许多拉丁语系以外的编码方式; CJK (中日韩) 便是其中的一部份. Unicode 是国际性的标准, 试图涵盖世界上所有的字符: 西方世界, 东方世界, 以及两者间的一切 (希腊文, 叙利亚文, 亚拉伯文, 希伯来文, 印度文, 印地安文, 等等). 它也容纳了多种作业系统与平台 (如 PC 及麦金塔).

Perl 本身以 Unicode 进行操作. 这表示 Perl 内部的字符串数据可用 Unicode 表示; Perl 的函式与算符 (例如正规表示式比对) 也能对 Unicode 进行操作. 在输入及输出时, 为了处理以 Unicode 之前的编码方式存放的数据, Perl 提供了 Encode 这个模块, 可以让你轻易地读取及写入旧有的编码数据.

Encode 延伸模块支援下列简体中文的编码方式 ('gb2312' 表示 'euc-cn'):

    euc-cn      Unix 延伸字符集, 也就是俗称的国标码
    gb2312-raw  未经处理的 (低比特) GB2312 字符表
    gb12345     未经处理的中国用繁体中文编码
    iso-ir-165  GB2312 + GB6345 + GB8565 + 新增字符
    cp936       字码页 936, 也可以用 'GBK' (扩充国标码) 指明
    hz          7 比特逸出式 GB2312 编码举例来说, 将 EUC-CN 编码的档案转成 Unicode, 祗需键入下列指令:

    perl -Mencoding=euc-cn,STDOUT,utf8 -pe1 &amp;lt; file.euc-cn &amp;gt; file.utf8Perl 也内附了 ``piconv'', 一支完全以 Perl 写成的字符转换工具程序, 用法如下:

    piconv -f euc-cn -t utf8 &amp;lt; file.euc-cn &amp;gt; file.utf8
    piconv -f utf8 -t euc-cn &amp;lt; file.utf8 &amp;gt; file.euc-cn另外, 利用 encoding 模块, 你可以轻易写出以字符为单位的程序码, 如下所示:

    #!/usr/bin/env perl
    # 启动 euc-cn 字串解析; 标准输出入及标准错误都设为 euc-cn 编码
    use encoding 'euc-cn', STDIN =&amp;gt; 'euc-cn', STDOUT =&amp;gt; 'euc-cn';
    print length(&amp;quot;骆驼&amp;quot;);            #  2 (双引号表示字符)
    print length('骆驼');            #  4 (单引号表示字节)
    print index(&amp;quot;谆谆教诲&amp;quot;, &amp;quot;蛔唤&amp;quot;); # -1 (不包含此子字符串)
    print index('谆谆教诲', '蛔唤'); #  1 (从第二个字节开始)在最后一列例子里, ``谆'' 的第二个字节与 ``谆'' 的第一个字节结合成 EUC-CN 码的 ``蛔''; ``谆'' 的第二个字节则与 ``教'' 的第一个字节结合成 ``唤''. 这解决了以前 EUC-CN 码比对处理上常见的问题.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1647232452633345463&amp;page=RSS%3a+EUC-CN+%e7%bc%96%e7%a0%81&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=guanyuchu.spaces.live.com&amp;amp;GT1=guanyuchu"&gt;</description><comments>http://guanyuchu.spaces.live.com/Blog/cns!E923DACFCE4B4249!299.entry#comment</comments><guid isPermaLink="true">http://guanyuchu.spaces.live.com/Blog/cns!E923DACFCE4B4249!299.entry</guid><pubDate>Tue, 20 Dec 2005 22:02:58 GMT</pubDate><slash:comments>8</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://guanyuchu.spaces.live.com/blog/cns!E923DACFCE4B4249!299/comments/feed.rss</wfw:commentRss><wfw:comment>http://guanyuchu.spaces.live.com/Blog/cns!E923DACFCE4B4249!299.entry#comment</wfw:comment><dcterms:modified>2005-12-20T22:02:58Z</dcterms:modified></item></channel></rss>