{"id":1844,"date":"2018-09-08T07:34:53","date_gmt":"2018-09-07T23:34:53","guid":{"rendered":"http:\/\/ufqi.com\/blog\/?p=1844"},"modified":"2018-09-25T09:47:49","modified_gmt":"2018-09-25T01:47:49","slug":"base62x-in-perl-base62x-pm","status":"publish","type":"post","link":"https:\/\/ufqi.com\/blog\/base62x-in-perl-base62x-pm\/","title":{"rendered":"-Base62x \u65b0\u589e -Perl \u7248\u672c\u6280\u672f\u5b9e\u73b0 Base62x.pm"},"content":{"rendered":"<p>\u5728\u6b64\u524d\u7684\u4e00\u7bc7Blog\uff08<a class=\"bigfont\" href=\"https:\/\/ufqi.com\/naturedns\/search?q=-R\/G2SW\" target=\"_blank\">-R\/G2SW<\/a>\u00a0\uff09\u4e2d\uff0c\u201c<strong>-gMIS \u5409\u5bc6\u65af\u4f18\u5316\u66f4\u65b0+\u5206\u7ec4\u9879\u533a\u6bb5AddGroupBySeg\/+\u590d\u5236AddByCopy\u7b49<\/strong>\u201d\uff0c \u6211\u4eec\u63d0\u5230\u201c\u6ce8\u518c\u52a8\u4f5cregisterAct\uff1a \u6539\u8fdb\u589e\u52a0 Base62x.class.js\u201d\uff0c \u521d\u5c1d\u8de8\u7f16\u7a0b\u8bed\u8a00\u3001\u8fd0\u884c\u65f6\u73af\u5883\u8fdb\u884c\u6570\u636e\u4ea4\u6362\u7684\u4fbf\u5229\uff0c\u8fd9\u6b21\u4e5f\u56e0\u7740\u90e8\u7f72\u4e00\u4e2a\u65b0\u7684 -GWA2 \u7684\u9879\u76ee\uff0c\u9700\u8981\u5728 -PHP \u548c -Perl \u4e2d\u8fdb\u884c\u591a\u5b57\u8282\u975eASCII\u5b57\u7b26\u6570\u636e\u7684\u4f20\u9012\uff0c\u4e8e\u662f\u5c31\u63a8\u8350\u4e86 -Base62x , \u8fd9\u6837 Base62x in Perl \u7684\u5de5\u4f5c\u5c31\u6392\u4e0a\u65e5\u7a0b\uff0c\u5728\u4e24\u4e2a\u5468\u672b\u7684\u5b9e\u9a8c\u4e0b\uff0c\u5b8c\u6210\u4e86 Base62x in Perl \u7684\u521d\u4e2a\u7248\u672c. \u5982\u4e0b\u662f\u4e00\u4e9b\u4f7f\u7528\u7ec6\u8282\uff0c\u540c\u65f6\u4e5f\u53ef\u4ee5\u5728 -GitHub-Wadelau \u4e0a\u5bfb\u627e\u83b7\u5f97\uff0c \u6216\u8005\u76f4\u63a5\u8bbf\u95ee -Base62x .<\/p>\n<ol>\n<li><strong>\u9762\u5411\u5bf9\u8c61\u7f16\u7a0bOOP\u7684 Base62x.pm<\/strong><br \/>\n<blockquote><p>use Base62x;<\/p>\n<p>my $base62x = Base62x-&gt;new();<br \/>my $str = &#8220;Hello World!\\n&#8221;;<br \/>my $encoded = $base62x-&gt;encode($str);<br \/>$str = $base62x-&gt;decode($encoded);<\/p><\/blockquote>\n<p>\u5728 Perl \u7a0b\u5e8f\u7684\u5f00\u59cb\uff0c\u5f15\u5165 Base62x.pm , \u7136\u540e\u751f\u6210\u76f8\u5e94\u7684\u5bf9\u8c61\u5b9e\u4f8b\uff0c\u901a\u8fc7\u8c03\u7528 \u8be5\u5b9e\u4f8b\u7684 encode\/decode \u65b9\u6cd5\u5b9e\u73b0\u76f8\u5e94\u7684\u7f16\u7801\u4e0e\u89e3\u7801\u3002<br \/>\u540c Base62x \u7684\u5176\u4ed6\u7248\u672c\u76f8\u901a\uff0c\u5b9e\u73b0\u4e86\u8de8\u7f16\u7a0b\u8bed\u8a00\u3001\u8fd0\u884c\u65f6\u73af\u5883\u7684\u6570\u636e\u5b89\u5168\u4ea4\u6362\u3002<br \/>\u540c Base62x\u7684\u5176\u4ed6\u7248\u672c\u4e00\u6837\uff0cPerl\u7248\u672c\u4e5f\u5b9e\u73b0\u4e86\u9488\u5bf9\u6570\u5b57\u8fdb\u5236\u8f6c\u6362\u548cASCII\u5feb\u6377\u5904\u7406\u7684\u76f8\u5173\u65b9\u6cd5\u3002\u5982\uff0c<\/p>\n<blockquote><p>my $i = 100;<br \/>\u00a0 \u00a0 # treas $i as base 10 and transform it into Base62x<br \/>my $numInBase62x = $base62x-&gt;encode($i, 10);<br \/>\u00a0 \u00a0 # try to decode a Base62x num into base 10<br \/>$i = $base62x-&gt;decode($numInBase62x, 10);<\/p><\/blockquote>\n<p>OOP\u7684\u8c03\u7528\u65b9\u5f0f\uff0c\u9002\u5408\u8fdb\u884c\u5faa\u73af\u5185\u53cd\u590d\u8c03\u7528\u7684\u4f7f\u7528\u573a\u666f\uff0c\u7531\u4e8e\u5728\u5b9e\u4f8b\u5316\u65f6\uff0c\u8fdb\u884c\u4e86\u73af\u5883\u53d8\u91cf\u7684\u521d\u59cb\u5316\u800c\u8282\u7701\u4e86\u540e\u7eed\u91cd\u590d\u52a8\u4f5c\u3002<br \/>.<\/p>\n<\/li>\n<li><strong>\u51fd\u6570\u5f0f\u7f16\u7a0b\u7684Base62x.pm<\/strong><br \/>\u9664\u4e86 OOP\u5f0f\u7684\u5199\u6cd5\uff0cBase62x.pm \u8fd8\u63d0\u4f9b\u4e86\u51fd\u6570\u5f0f\u7f16\u7a0b\u7684\u8c03\u7528\u65b9\u5f0f\uff0c\u5217\u5982\u4e0b\u3002<br \/>\n<blockquote><p>use Base62x qw (base62x_encode base62x_decode);<\/p>\n<p>my $str = &#8220;Hello World!\\n&#8221;;<br \/>my $encoded = base62x_encode($str);<br \/>$str = base62x_decode($encoded);<\/p><\/blockquote>\n<p>\u51fd\u6570\u5f0f\u7f16\u7a0b\u9002\u5408\u5355\u4e00\u6b21\u542f\u52a8\u5e76\u8fd0\u884c\u7684\u4f7f\u7528\u573a\u666f\u3002<br \/>\u8be6\u7ec6\u5b9e\u73b0\u53ef\u4ee5\u53c2\u8003 Base62x.pm \u7684\u4ee3\u7801\u3002<br \/>.<\/li>\n<\/ol>\n<p>\u622a\u6b62\u76ee\u524d\uff0cBase62x \u5df2\u7ecf\u53ef\u4ee5\u63d0\u4f9b\u7684\u7f16\u7a0b\u8bed\u8a00\u7248\u672c\u5305\u62ec C, Java, PHP, JavaScript, Perl. \u5176\u4e2dJavaScript \u8fd8\u6709\u4e24\u4e2a\u5b9e\u73b0\uff0c Base62x.class.js \u548c npm base62x.<\/p>\n<p><img src=\"https:\/\/ufqi.com\/blog\/wp-content\/uploads\/2016\/09\/b62x-icon-201306.png\" \/><br \/>Base62x: An alternative approach to Base64 for only-alphanumeric characters in output.<br \/>Base62x is an non-symbolic Base64 encoding scheme. It can be used safely in computer file systems, programming languages for data exchange, internet communication systems, and is an ideal substitute and successor of many variants of Base64 encoding scheme.<br \/>Base62x \u662f\u4e00\u79cd\u65e0\u7b26\u53f7\u7684Base64\u7f16\u7801\u65b9\u6848\u3002\u5728\u8ba1\u7b97\u673a\u6587\u4ef6\u7cfb\u7edf\u3001\u7f16\u7a0b\u8bed\u8a00\u6570\u636e\u4ea4\u6362\u3001\u4e92\u8054\u7f51\u7edc\u901a\u4fe1\u7cfb\u7edf\u4e2d\u53ef\u4ee5\u5b89\u5168\u5730\u4f7f\u7528\uff0c\u540c\u65f6\u662f\u5404\u79cd\u53d8\u79cdBase64\u7f16\u7801\u65b9\u6848\u7684\u7406\u60f3\u66ff\u4ee3\u54c1\u3001\u7ee7\u4efb\u8005\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728\u6b64\u524d\u7684\u4e00\u7bc7Blog\uff08-R\/G2SW\u00a0\uff09\u4e2d\uff0c\u201c-gMIS \u5409\u5bc6\u65af\u4f18\u5316\u66f4\u65b0+\u5206\u7ec4\u9879 &hellip; <a href=\"https:\/\/ufqi.com\/blog\/base62x-in-perl-base62x-pm\/\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[161,6,2],"tags":[154,23],"_links":{"self":[{"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/posts\/1844"}],"collection":[{"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/comments?post=1844"}],"version-history":[{"count":7,"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/posts\/1844\/revisions"}],"predecessor-version":[{"id":1857,"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/posts\/1844\/revisions\/1857"}],"wp:attachment":[{"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/media?parent=1844"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/categories?post=1844"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/tags?post=1844"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}