`
sealbird
  • 浏览: 586800 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[C++ VC] iconv库的使用

    博客分类:
  • C++
阅读更多
GB2312字符串转换为UTF-8的字符串,代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <iconv.h>


int main(void)
{
    unsigned char *src = "魅影追击和歌姬"; /* 需转换的字串 */
    unsigned char dst[256] = {0}; /* 转换后的内容 */
    unsigned char buf[1024] = {0}; /* 格式化转换后的字串 */
    size_t src_len = strlen(src);
    size_t dst_len = sizeof(dst);
    unsigned char *in = src;
    unsigned char *out = dst;
    
    iconv_t cd;
    int i;  
    int j;  
    
    cd = iconv_open("UTF-8", "GB2312"); /* 将GB2312字符集转换为UTF-8字符集 */
    if ((iconv_t)-1 == cd)
    {
        return -1;
    }

    printf("src: %s\n", src);
    iconv(cd, &in, &src_len, &out, &dst_len); /* 执行转换 */

    /* 以下将转换后的内容格式化为: %XX%XX...形式的字串 */
    printf("dst: ");
    j = 0;  
    for (i = 0; i < strlen(dst); i++)
    {
        printf("%.2X ", dst[i]);
        buf[j++] = ''%'';
        snprintf(buf + j, 3, "%.2X", dst[i]);
        j += 2; 
    }
    printf("\n");
    printf("buf: %s\n", buf);
    
    iconv_close(cd); /* 执行清理 */
    return 0;
}
 

文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/3_program/vc/vc_js/2008114/96363.html
分享到:
评论

相关推荐

    iconvcpp库 windows库

    iconvcpp库是一款在Windows平台上使用的C++封装的iconv库,它允许开发者在Visual C++(VC)或Visual Studio(VS)环境下处理字符编码转换。iconv库本身是跨平台的,它提供了对不同字符编码之间转换的功能,如ASCII、...

    iconv 1.9.1 vc8 library

    用户编译的iconv库是针对这个编译器优化的,意味着它可以无缝地集成到使用vc8构建的项目中。 4. **动态链接库 (dll)**:DLL文件是Windows操作系统的组件,其中包含了可被多个程序同时调用的函数或资源。使用iconv的...

    VC2010编译的libiconv静态库

    1. **包含头文件**:在C/C++代码中,首先需要包含头文件`iconv.h`,这将提供libiconv库的所有函数声明和类型定义。 ```c #include "iconv.h" ``` 2. **初始化转换流**:使用`iconv_open()`函数创建一个转换流,...

    libiconv vc++ 6.0 实例代码 包含 动态dll 静态lib

    c/C++里预定义加入LIBICONV_STATIC Link忽略库加入LIBCD.lib(看似乎有函数重定义的错误,如果有则加入) libiconv使用动态dll 上lib 文件夹 项目里#include&lt;iconv.h&gt;,并在工程-&gt;设置-&gt;link里 对象/模块里加入 ...

    c++_libxml解析xml.doc

    C++ 使用 Libxml2 解析 XML 文件 Libxml2 是一个 C 语言的 XML 程序库,可以简单方便的提供对 XML 文档的各种操作,并且支持 XPATH 查询,以及部分的支持 XSLT 转换等功能。下面是使用 Libxml2 解析 XML 文件的详细...

    VC ASCII,UNICODE,UTF8字符串互相转换的C++代码

    而在ASCII和UTF-8之间转换,可以使用`std::wstring_convert`和`std::codecvt_utf8`,但需要注意,这些在C++17后已被标记为过时,推荐使用`std::string_view`和第三方库如iconv或ICU。 以下是一些基本的转换示例: ...

    LibIconv-1.15 适用于VC2017

    本篇将深入探讨LibIconv-1.15版本在Visual Studio 2017 (VC2017)下的使用方法和关键知识点,同时也会涉及C++11标准在低版本编译器及Android平台上的兼容性问题。 首先,LibIconv-1.15是针对不同字符集转换的解决...

    libxml VC范例代码

    "libxml VC范例代码" 指的是使用Visual C++(VC)编译环境,结合libxml库编写的示例代码。libxml是一个开源的XML解析库,广泛应用于处理XML文档,它提供了丰富的API来读取、写入、验证和操作XML数据。 **描述解析:...

    c++ 读写txt文件和乱码问题解决

    在读取UTF-8编码的TXT文件时,可以使用第三方库,如`iconv`或`ICU`进行转换。然而,对于简单的读写操作,一个实用的方法是使用`wstring`(宽字符串)和`std::codecvt_utf8`: ```cpp #include #include #include ...

    LibIconv-1.15-VC2017-x64

    项目中用的一个动态库代码。附件含x64编译输出和所需要的源码。x64动态库是经过测试的。...低版本的VC,或者Android平台上NDK对 C++11的支持是有限。要实现各种字符编码的转换,iconv库是一个不错的选择。

    c/c++采用编码转换表实现gbk与unicode互转

    在编程领域,字符编码是处理文本数据的关键环节。GBK和Unicode是两种常见的字符编码标准,它们各有特点,适用于...然而,对于大规模的文本处理,更推荐使用现成的库,如iconv,它们提供了更高效和全面的编码转换支持。

    C++Http上传文件到web服务器,解决中文参数乱码

    可以使用标准库中的`std::wstring_convert`和`std::codecvt_utf8`进行转换,或者使用第三方库如iconv。 2. **构建HTTP请求**:在构建HTTP请求头时,确保在Content-Type中指定UTF-8编码。对于POST请求体,如果是表单...

    libxml2教程

    本文主要介绍了在Windows平台下使用C/C++语言,应用libXml2库来进行XML文档操作,同时使用ICONV库进行中文编码转换。 libxml2库的下载地址是http://xmlsoft.org/,完全版的库是开源的,并且带有例子程序和说明文档...

    zxing 在 windows 下的编译包

    本来zxing的c++部分不是为windows准备的,在windows中编译应该用mingw比较合适。但我不熟悉这个。今天试一下,似乎可以在VS2008编译。虽然有很多问题,不过都可以解决的。 大概有如下问题: 1。isnan, NAN, ...

    [C++]简单实用的字符转换类

    可调用iconv库,或者VC的API char(ansi) &lt;-&gt; wchar_t(unicode) char(ansi) &lt;-&gt; char(utf8) char(utf8) &lt;-&gt; wchar_t(unicode) 用法: std::cout (src, E_CHAR, E_WCHAR).WChar(); std::cout (src, E_CHAR, E_UTF8)...

    c++操作xml.pdf

    在C++中操作XML文件,由于C++标准库并没有提供内置的支持,开发人员通常需要借助第三方库来实现这一功能。本示例中介绍的是使用LIBXML2库进行XML处理的方法。LIBXML2是一个广泛使用的开源XML程序库,由C语言编写,...

    VC 繁、简转换程序.rar

    例如,可以使用标准库中的`iconv`函数或者自定义转换函数来实现。在这个程序中,可能包含以下关键步骤: 1. **读取GB2312编码的字符串**:使用C++的标准输入输出库(iostream)或者文件操作函数(如fread)读取包含...

    VC++中文繁体、简体(BIG-GBK)编码转换程序.rar

    8. **字符编码库**:为了进行编码转换,开发者可能使用了特定的库,如iconv或ICU,这些库提供了跨平台的字符编码转换功能。 9. **编程实践**:在实际项目中,处理多语言和不同编码的文本是常见的需求,这个程序提供...

    基于libcurl的网页访问VC实现

    在本文中,我们将深入探讨如何使用libcurl库在VC(Visual C++)环境中实现网页访问功能。libcurl是一个强大的开源库,它允许开发者在多种编程语言中执行HTTP、HTTPS和其他网络协议的操作。在这个项目中,我们关注的...

Global site tag (gtag.js) - Google Analytics