Native/C

test source (unicode)

aucd29 2013. 10. 2. 18:54
출처: http://jinsuk.pe.kr/Unicode/public/test-token.c/* by Jinsuk Kim, http://www.jinsuk.pe.kr */

[code]
#include <stdio.h>

main(int argc, char *argv[])
{
    FILE *fp;
    int len;
    char doc[4096];
    char buf[4096];
    char filename[256];
    char *stringPtr;
    int i;

    printf("content-type: text/html\n\n");
    printf("<link rel=stylesheet type=text/css href=/css/en.css>\n");

    if (argc==2) {
    strcpy(filename, argv[1]);
    }
    else
    strcpy(filename, "utf8sample.txt");
    fp = fopen(filename, "r");
    if (fp == NULL) exit(0);

    fseek(fp, 3, SEEK_SET);    /* utf-8 document header */
    len=fread(doc, 1, 4095, fp);
    fclose(fp);
    
    IconvString("UTF-8", "EUCKR", doc, buf);
    printf("<table width=600><tr><td class=entete>\n");
    printf("시험 텍스트(UTF8을 EUCKR로 변환)</td></tr>\n");
    printf("<tr><td class=menu><pre>\n%s\n</pre></td></tr>\n", buf);

    printf("<tr><td class=entete>분리된 어절(EUCKR로 변환)</td></tr>\n");
    printf("<tr><td class=menu>\n");

    stringPtr = doc;
    while (*stringPtr) {
    char CurToken[256];
    char euckr[256];
    int code;
    code = UTF8token(&stringPtr, CurToken, &len);
    IconvString("UTF-8", "EUCKR", CurToken, euckr);
    if (len > 0)
        printf("[%s]\n", euckr);
    }
    printf("</td></tr></table>\n");
}

출처: http://jinsuk.pe.kr/Unicode/public/test-hj2hg.c
/* by Jinsuk Kim, http://www.jinsuk.pe.kr */

#include <stdio.h>

main(int argc, char *argv[])
{
    FILE *fp;
    int len;
    char buf[4096];
    char euckr[4096];
    char *stringPtr;
    int i;

    printf("content-type: text/html\n\n");
    printf("<link rel=stylesheet type=text/css href=/css/en.css>\n");
    fp = fopen("utf8sample.txt", "r");
    if (fp == NULL) exit(0);

    fseek(fp, 3, SEEK_SET);
    len=fread(buf, 1, 4095, fp);
    fclose(fp);
    
    IconvString("UTF-8", "EUCKR", buf, euckr);
    printf("<table><tr><td class=entete>원문</td></tr><tr><td>\n");
    printf("<pre>\n%s\n<pre></td</tr>\n", euckr);

    Hanja2Hangul(buf);

    IconvString("UTF-8", "EUCKR", buf, euckr);
    printf("<tr><td class=entete>변환문</td></tr><tr><td>\n");
    printf("<pre>\n%s\n<pre></td</tr></table>\n", euckr);
}


출처: http://jinsuk.pe.kr/Unicode/public/test-ucs2utf8.c
/* by Jinsuk Kim, http://www.jinsuk.pe.kr */

#include <stdio.h>

main()
{
    FILE *fp;
    int len;
    char doc[4096];
    char buf[4096];
    unsigned short ucs2[4096];
    int ucs2Cnt;

    printf("content-type: text/html\n\n");
    printf("<link rel=stylesheet type=text/css href=/css/en.css>\n");

    fp = fopen("utf8sample.txt", "r");
    if (fp == NULL) exit(0);

    fseek(fp, 3, SEEK_SET);    /* utf-8 document header */
    len=fread(doc, 1, 4095, fp);
    fclose(fp);
    
    IconvString("UTF-8", "EUCKR", doc, buf);
    printf("<table width=600><tr><td class=entete>\n");
    printf("시험 텍스트(UTF8을 EUCKR로 변환)</td></tr>\n");
    printf("<tr><td class=menu><pre>\n%s\n</pre></td></tr>\n", buf);

    printf("<tr><td class=entete>UCS-2를 UTF-8로, 이를 다시 EUCKR로</td></tr>\n");
    printf("<tr><td class=menu>\n");

    /* utf8 document를 UCS-2로 */
    ucs2Cnt = UTF8toUCS2(doc, ucs2);
    /* UCS2를 다시 UTF8로 */
    UCS2toUTF8(ucs2, ucs2Cnt, doc);
    /*출력을 위해 다시 EUC-KR로 */
    IconvString("UTF-8", "EUCKR", doc, buf);
    printf("<pre>\n%s\n</pre>\n", buf);

    printf("</td></tr></table>\n");
}
[/code]
[출처] test source|작성자 형기