{"id":267,"date":"2011-11-07T22:19:57","date_gmt":"2011-11-07T14:19:57","guid":{"rendered":"http:\/\/www.kiccleaf.com\/?p=267"},"modified":"2020-08-28T12:21:28","modified_gmt":"2020-08-28T04:21:28","slug":"c%e8%af%ad%e8%a8%80%e8%8e%b7%e5%8f%96%e6%b1%89%e5%ad%97%e6%8b%bc%e9%9f%b3%e9%a6%96%e5%ad%97%e6%af%8d","status":"publish","type":"post","link":"http:\/\/www.kiccleaf.com\/?p=267","title":{"rendered":"C\u8bed\u8a00\u83b7\u53d6\u6c49\u5b57\u62fc\u97f3\u9996\u5b57\u6bcd"},"content":{"rendered":"\n<p>\u5728\u7f51\u7edc\u4e0a\u627e\u4e86\u4e00\u4efdC\u8bed\u8a00\u83b7\u53d6\u6c49\u5b57\u62fc\u97f3\u9996\u5b57\u6bcd\u7684\u6e90\u7a0b\u5e8f\uff0c\u5148\u4fdd\u5b58\u4e00\u4e0b\u3002\u8fd9\u91cc\u7528\u4e86glib\u91cc\u9762\u7684\u4e00\u4e2a\u51fd\u6570g_convert\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"c\" class=\"language-c\">#include &lt;stdio.h>\r\n#include &lt;stdlib.h>\r\n#include &lt;string.h>\r\n#include &lt;glib.h>\r\n  \r\ngchar getpychar(guchar uword0 , guchar uword1)\r\n{\r\n    gchar pychar;\r\n  \r\n    int i1 = (short)(uword0 - '\\0');\r\n    int i2 = (short)(uword1 - '\\0');\r\n  \r\n    int tmp = i1 * 256 + i2;\r\n  \r\n    if(tmp >= 45217 &amp;&amp; tmp &lt;= 45252) pychar = 'A'; \r\n    else if(tmp >= 45253 &amp;&amp; tmp &lt;= 45760) pychar = 'B'; \r\n    else if(tmp >= 45761 &amp;&amp; tmp &lt;= 46317) pychar = 'C'; \r\n    else if(tmp >= 46318 &amp;&amp; tmp &lt;= 46825) pychar = 'D'; \r\n    else if(tmp >= 46826 &amp;&amp; tmp &lt;= 47009) pychar = 'E'; \r\n    else if(tmp >= 47010 &amp;&amp; tmp &lt;= 47296) pychar = 'F'; \r\n    else if(tmp >= 47297 &amp;&amp; tmp &lt;= 47613) pychar = 'G'; \r\n    else if(tmp >= 47614 &amp;&amp; tmp &lt;= 48118) pychar = 'H'; \r\n    else if(tmp >= 48119 &amp;&amp; tmp &lt;= 49061) pychar = 'J'; \r\n    else if(tmp >= 49062 &amp;&amp; tmp &lt;= 49323) pychar = 'K'; \r\n    else if(tmp >= 49324 &amp;&amp; tmp &lt;= 49895) pychar = 'L'; \r\n    else if(tmp >= 49896 &amp;&amp; tmp &lt;= 50370) pychar = 'M'; \r\n    else if(tmp >= 50371 &amp;&amp; tmp &lt;= 50613) pychar = 'N'; \r\n    else if(tmp >= 50614 &amp;&amp; tmp &lt;= 50621) pychar = 'O'; \r\n    else if(tmp >= 50622 &amp;&amp; tmp &lt;= 50905) pychar = 'P'; \r\n    else if(tmp >= 50906 &amp;&amp; tmp &lt;= 51386) pychar = 'Q'; \r\n    else if(tmp >= 51387 &amp;&amp; tmp &lt;= 51445) pychar = 'R'; \r\n    else if(tmp >= 51446 &amp;&amp; tmp &lt;= 52217) pychar = 'S'; \r\n    else if(tmp >= 52218 &amp;&amp; tmp &lt;= 52697) pychar = 'T'; \r\n    else if(tmp >= 52698 &amp;&amp; tmp &lt;= 52979) pychar = 'W'; \r\n    else if(tmp >= 52980 &amp;&amp; tmp &lt;= 53640) pychar = 'X'; \r\n    else if(tmp >= 53689 &amp;&amp; tmp &lt;= 54480) pychar = 'Y'; \r\n    else if(tmp >= 54481 &amp;&amp; tmp &lt;= 55289) pychar = 'Z'; \r\n    else pychar = ' ';\r\n  \r\n    return pychar;\r\n}\r\n  \r\ngchar *getpystring(const gchar *in)\r\n{\r\n    gsize inlen , olen , i , j = 0;\r\n    gchar *gword = g_convert(in , strlen(in)\r\n            , \"gb2312\" , \"utf8\" , &amp;inlen , &amp;olen , NULL);\r\n  \r\n    guchar *uword = (guchar*)gword;\r\n    gchar *out = (gchar*)malloc(olen);\r\n  \r\n    memset(out , 0 , olen);\r\n  \r\n    for(i = 0 ; i &lt; olen ; i++){\r\n        if(uword[i] >= 0xa1){\r\n            if(uword[i] != 0xa3){\r\n                out[j++] = getpychar(uword[i] , uword[i + 1]);\r\n                i ++;\r\n            }\r\n        }else{\r\n            out[j++] = (gchar)uword[i];\r\n        }\r\n    }\r\n  \r\n    return out;\r\n  \r\n}\r\n  \r\nint main(int argc , char **argv)\r\n{\r\n    printf(\"%s\\n\" , getpystring(\"linux\u662f\u4e00\u4e2a\u51fa\u8272\u7684\u64cd\u4f5c\u7cfb\u7edf\"));\r\n    return 0;\r\n  \r\n}<\/code><\/pre>\n\n\n\n<p>\u7a0b\u5e8f\u8f93\u51fa\uff1alinuxSYGCSDCZXT<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728\u7f51\u7edc\u4e0a\u627e\u4e86\u4e00\u4efdC\u8bed\u8a00\u83b7\u53d6\u6c49\u5b57\u62fc\u97f3\u9996\u5b57\u6bcd\u7684\u6e90\u7a0b\u5e8f\uff0c&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"http:\/\/www.kiccleaf.com\/?p=267\">Continue reading<span class=\"screen-reader-text\">C\u8bed\u8a00\u83b7\u53d6\u6c49\u5b57\u62fc\u97f3\u9996\u5b57\u6bcd<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":3,"footnotes":""},"categories":[27],"tags":[28,56,55,57],"class_list":["post-267","post","type-post","status-publish","format-standard","hentry","category-c","tag-c","tag-56","tag-55","tag-57","entry"],"views":4172,"_links":{"self":[{"href":"http:\/\/www.kiccleaf.com\/index.php?rest_route=\/wp\/v2\/posts\/267","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.kiccleaf.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.kiccleaf.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.kiccleaf.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.kiccleaf.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=267"}],"version-history":[{"count":1,"href":"http:\/\/www.kiccleaf.com\/index.php?rest_route=\/wp\/v2\/posts\/267\/revisions"}],"predecessor-version":[{"id":736,"href":"http:\/\/www.kiccleaf.com\/index.php?rest_route=\/wp\/v2\/posts\/267\/revisions\/736"}],"wp:attachment":[{"href":"http:\/\/www.kiccleaf.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.kiccleaf.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=267"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.kiccleaf.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}