星期五, 11月 12, 2021

創業廿年分享: 10. 視客戶為夥伴, 分享POS軟件的發展

我係YY, 2001年創辦了MemDB軟件公司, 2005年開始寫BLOG, 2021開始用一個新模式拍片, 分享這廿年的創業經驗和心得, 大家有興趣這類TOPIC, 歡迎訂閱. 片中零售軟件下載: https://www.memdb.com/system/product_list/mempos/ 以下是我公司網站: https://www.memdb.com/ 網誌: https://www.memdb.com/system/blog/ FB專頁: https://www.facebook.com/MemoryDB/ Youtube: https://www.youtube.com/playlist?list=PLmW90hTPL75Dr9dT4-MdOz8z-1E9obVtD #創業#創業分享 #軟件公司#程式開發#程式設計#程式編寫

星期三, 11月 10, 2021

星期二, 5月 25, 2021

Unicode escape to utf-8

int get_uint8(int h, int l)
{
    int ret;

    if (h - '0' < 10)
        ret = h - '0';
    else if (h - 'A' < 6)
        ret = h - 'A' + 0x0A;
    else if (h - 'a' < 6)
        ret = h - 'a' + 0x0A;

    ret = ret << 4;

    if (l - '0' < 10)
        ret |= l - '0';
    else if (l - 'A' < 6)
        ret |= l - 'A' + 0x0A;
    else if (l - 'a' < 6)
        ret |= l - 'a' + 0x0A;
    return  ret;
}


AnsiString UniToAnsi(char *s)
{
    wchar_t *ws=new wchar_t(strlen(s));
    int c=0;
    while (*s !='\0' )
    {
        if (*s == '\\')
        {
            if (strlen(s) > 5)
            {
                if (*(s + 1) == 'u')
                {
                    unsigned int v = get_uint8(*(s + 2), *(s + 3)) << 8;
                    v |= get_uint8(*(s + 4), *(s + 5));

                    s += 6;
                    ws[c]=wchar_t(v);
                    c++;
                    continue;
                }
            }
        }
        s++;
    }
    ws[c]='\0';
    AnsiString ret=UTF8Decode(UTF8Encode(ws));
    delete ws;
    return ret;
}


Input: char *str="\u82b3TEST\u8349\u827e\u723e\u7cbe\u91c0\u5564\u9152";
Edit2->Text=UniToAnsi(Edit1->Text.c_str());