`
qiaoweishu
  • 浏览: 66177 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

GBK_TO_UTF8 程序实现方式

 
阅读更多
    网络上面有提到GBK向UTF8转换的实现方式,但是尝试之后不大准确。
    如下是自己根据GBK和UTF8的存储格式,实现GBK向UTF8转化。

    BYTE aGBK[3] = {0x00, 0x00, 0x00};
    int by1, by2, by3, iValue, iSub = 1, iLen = 0, iCount = 0;
    wchar_t aUnicode[2];
    BYTE *pString = NULL;
    iLen = sStr.Length();//sStr为函数输入参数,AnsiString
    pString = new BYTE [iLen * 3];
    while(iSub <= iLen)
    {
        if(0x80 > (iValue = (sStr[iSub] & 0xFF)))
        {
            pString[iCount++] = iValue;
        }
        else
        {
            aGBK[0] = (sStr[iSub++] & 0xFF);
            aGBK[1] = (sStr[iSub] & 0xFF);
            MultiByteToWideChar(CP_ACP, 0, aGBK, 3, aUnicode, 2);
            by1 = 0xE0;
            by2 = 0x80;
            by3 = 0x80;
            iValue = aUnicode[0];
            by3 |= (iValue & 0x0000003F);
            by2 |= ((iValue >> 6) & 0x0000003F);
            by1 |= ((iValue >> 12) & 0x0000000F);
            pString[iCount++] = by1;
            pString[iCount++] = by2;
            pString[iCount++] = by3;
        }
        iSub++;
    }


2010_10_18_16_59
分享到:
评论

相关推荐

    GBK_pinyin_table.rar_GBK_gbk utf-8_gbk piny_gbk_to_pinyin_pinyi

    标题中的“GBK_pinyin_table.rar”表明这是一个关于GBK编码的拼音资源文件,而“GBK_gbk_utf-8_gbk_to_pinyin_pinyi”则暗示了这个资源涉及到GBK编码、UTF-8编码以及汉字到拼音的转换。描述中提到这是“GBK拼音字表...

    UTF-8toGBK_labview编码gbk_LabVIEWUTF-8_utf-8toGbk_源码.zip

    这个压缩包文件"UTF-8toGBK_labview编码gbk_LabVIEWUTF-8_utf-8toGbk_源码.zip"主要涉及到两个常见的字符编码格式:UTF-8和GBK,以及如何在LabVIEW环境下进行编码转换。LabVIEW是美国国家仪器(NI)开发的一种图形化...

    UTF-8toGBK_labview编码gbk_LabVIEWUTF-8_utf-8toGbk_

    在LabVIEW编程环境中,"UTF-8toGBK.vi"这个程序可能是一个用户自定义的VI(Virtual Instrument),用于将UTF-8编码的字符串转换为GBK编码。LabVIEW作为一个图形化编程语言,提供了丰富的字符串处理函数,其中包括了...

    utf-8.rar_c++ string utf-8_string to utf-8_utf_utf 8_utf-8

    `std::string`通常用来存储和处理以字节序列形式表示的文本,而UTF-8恰好就是这样一种以字节为基础的编码方式。 在UTF-8编码中,每个Unicode字符可能由1到4个连续的字节表示。因此,当你处理`std::string`时,需要...

    c语言gbk、utf8转换编码表及函数

    - `utf8_to_gbk()`函数则相反,它接受UTF-8编码的字符串,返回GBK编码的字符串。 6. **注意事项** - 转换过程中需要处理非法编码和异常情况,例如GBK编码的非标准字节序列或超出GBK范围的Unicode码点。 - 处理...

    c/c++ 字符集 gbk/utf8互转,Ansi/Utf8互转 纯c实现跨平台

    2. `utf8_to_gbk(char* utf8_str, char* gbk_str)`: 相反,这个函数会把UTF-8编码的字符串转换成GBK编码。UTF-8的每个字符可能由1到4个字节组成,转换过程需要考虑这些字节序列。 3. `ansi_to_utf8(char* ansi_str,...

    labview utf8toGBK

    在LabVIEW中,如果你的数据源使用UTF-8编码,而在系统或者程序中误设为GBK编码,就可能出现乱码。"UTF-8toGBK.vi"这个虚拟仪器(VI)就是用来解决这种问题的。它提供了一个功能,将UTF-8编码的字符串转换为GBK编码,...

    STM32 MDK utf8 gbk编码转换

    在提供的`gbk_utf8_unicode.c`和`gbk_utf8_unicode.h`文件中,可能包含了用于实现UTF-8与GBK之间转换的函数。这些函数可能包括将GBK编码的字符串转换为UTF-8,以及将UTF-8编码的字符串转换为GBK。 例如,一个可能的...

    C语言GBK、Unicode与UTF8互转代码,含转码表及接口函数

    - `int utf8_to_unicode(const char* utf8_buffer, int utf8_len, wchar_t* unicode_buffer, int unicode_len)`:将UTF-8编码转换为宽字符(Unicode)形式。 - `int unicode_to_utf8(const wchar_t* unicode_buffer,...

    GBK与UTF-8转码(C++)

    本文将详细介绍如何在Microsoft Foundation Classes (MFC)环境下实现GBK与UTF-8之间的编码转换。该技术适用于那些需要处理不同字符集数据的应用程序开发场景,特别是在早期Windows系统中广泛使用的MFC框架下进行编码...

    UTF8-GBK编码互转(C)

    在头文件中,可能会定义如`utf8_to_gbk`和`gbk_to_utf8`这样的函数原型,用于进行编码转换。实现文件中,这些函数会包含对字节序列的解析和转换操作。 编写这样的转换程序需要深入理解字符编码原理,并且需要考虑...

    console_gbk2utf8_dutf82gbk.zip

    throw std::runtime_error("Failed to convert from GBK to UTF-8"); } outStr.resize(outStr.size() - outbytesleft); // 裁剪末尾的空字符 iconv_close(cd); return outStr; } ``` 这两个函数分别在Windows...

    windows下利用libiconv将实现utf8和gbk编码之间转换

    这个工程可能包含了一个或多个源文件,例如`utf8_to_gbk.c`,这些文件展示了如何在C语言环境中调用libiconv API进行编码转换。 为了确保转换的正确性,需要注意以下几点: - 检查输入和输出字符串是否正确编码。 - ...

    gbk和utf8转换程序

    1. 创建`std::wstring_convert`对象,这次指定`std::codecvt_utf8_from_gbk`作为转换规则,因为GBK到UTF-8的转换不是标准转换,可能需要特定的库支持。 2. 使用`from_bytes`方法将UTF-8编码的字节序列转换为宽字符串...

    GBK批量转utf8(支持整个目录)

    UTF-8则是Unicode的一种实现方式,Unicode是一个包含全球几乎所有文字的字符集。UTF-8编码的最大特点是其字节长度可变,从1字节到4字节不等,能够表示Unicode字符集中所有的字符。UTF-8在互联网上被广泛采用,因为它...

    gbk汉字转utf8编码的转换函数,亲测有用

    utf8_string = gbk_string.encode('gbk').decode('utf-8') return utf8_string ``` 这段代码首先使用`encode`方法将GBK编码的字符串转为字节流,然后再用`decode`方法将字节流解码为UTF-8编码的字符串。这种方法...

    GBK Unicode UTF8码的相互转换源程序(C#语言)

    string utf8FromUnicode = Encoding.UTF8.GetString(utf16ToUtf8Bytes); Console.WriteLine($"GBK -&gt; UTF-8: {utf8String}"); Console.WriteLine($"UTF-8 -&gt; GBK: {gbkString}"); Console.WriteLine($"UTF-8 -&gt;...

    UTF8.rar_UTF8_linux utf8 _linux utf8 Unicode_single

    标题“UTF8.rar_UTF8_linux utf8 _linux utf8 Unicode_single”暗示了这个压缩包包含与UTF-8编码在Linux环境下转换单个字符相关的源代码。UTF-8是一种广泛使用的Unicode字符编码方案,它能表示Unicode标准中的所有...

    GBK源码转UTF8格式(QT源码)

    通过`QTextCodec::codecForName()`函数获取GBK或UTF-8的编码对象,然后使用`fromUnicode()`和`toUnicode()`方法进行转换。 3. **使用外部工具**:压缩包内的`Gbk2utf8`文件可能是一个脚本或程序,用于批量转换整个...

    UTF8转16进制工具 Utf8ToHex

    UTF-8和16进制编码是两种常见的表示方式,尤其在程序开发、数据传输和存储时经常遇到。标题中的"UTF8转16进制工具 Utf8ToHex"指的是一个能够将UTF-8编码的字符串转换成16进制表示形式的实用工具。描述中提到的例子,...

Global site tag (gtag.js) - Google Analytics