注册 登录
编程论坛 C语言论坛

求助: libiconv-1.17如何使用。。

追梦人zmrghy 发布于 2022-09-13 23:57, 1140 次点击
文件编码转换问题,研究了好久。。。。
帖子,博客,日志看了不少,无奈自己基础太差。
还是没成功。。。。
程序虽然还没成功。
但是,清楚了一个思路。
UTF-8 可以 通过iconv库转成 GBK。

关于libiconv库如何使用,成了新的问题,
网上找了不少资料,版本不同,讲得用法也不同。
自己基础又差,资料越看越迷糊。。。
只有本站会员才能查看附件,请 登录

在官网上下载了 libiconv-1.17 如何在VS2022 C++ 中使用就不知道了。
如何让这只山羊在VS2022 C++ 中正常工作呀???
现在,有了这只山羊却不会用。。。。

[此贴子已经被作者于2022-9-14 09:26编辑过]

6 回复
#2
rjsp2022-09-14 08:25
如果你这个utf8内容保存在文件中
    【C】 FILE* file = fopen( L"……", L"rt, ccs=UTF-8" );
    【C++】ifstream file( "……" );     file.imbue( locale("LC_CTYPE=.utf8") );

其它:
【C++】std::use_face
【ICU】ucnv_convert

BTW:附上一个歪门邪道,绝对属于魔教武功的代码
程序代码:
#include <iostream>
#include <filesystem>

int main( void )
{
    const char8_t utf8[] = u8R"(使用一个[歪门邪道]的方法, \/:*?"<>| HelloWorld)";

    std::string gbk = std::filesystem::path(utf8).string();
    std::cout << gbk << std::endl;
}
#3
apull2022-09-14 09:10
以下是引用rjsp在2022-9-14 08:25:16的发言:

如果你这个utf8内容保存在文件中
    【C】 FILE* file = fopen( L"……", L"rt, ccs=UTF-8" );
    【C++】ifstream file( "……" );     file.imbue( locale("LC_CTYPE=.utf8") );

其它:
【C++】std::use_face
【ICU】ucnv_convert

BTW:附上一个歪门邪道,绝对属于魔教武功的代码
#include <iostream>
#include <filesystem>

int main( void )
{
    const char8_t utf8[] = u8R"(使用一个[歪门邪道]的方法, \/:*?"<>| HelloWorld)";

    std::string gbk = std::filesystem::path(utf8).string();
    std::cout << gbk << std::endl;
}


妙哉。
#4
追梦人zmrghy2022-09-14 09:14
回复 2楼 rjsp
一种方法,搞不懂,没学会,你又传授其它方法。
这样的结果,很可能是一样也学不会,更加迷糊。。。。
#5
追梦人zmrghy2022-09-14 09:41
回复 3楼 apull
方法二
1. 下载库文件
访问libiconv库官网[ GNU libiconv库Windows下载地址 ]
找到 Download 标签
单击 Complete package, except sources (完整的软件包,源代码除外) 后面的 Setup,即可下载

这个方法是不是比较简单呀???

只有本站会员才能查看附件,请 登录


下载了俩只羊,应该使用哪一只羊呀???

[此贴子已经被作者于2022-9-14 09:44编辑过]

#6
apull2022-09-14 09:50
src那个应该是源码。
1楼那张图的windows中找.lib文件,复制到vc目录,include中的复制到vc目录,
代码中#include这个头文件,链接里添加这个.lib文件。
#7
追梦人zmrghy2022-09-14 11:25
以下是引用apull在2022-9-14 09:50:33的发言:

src那个应该是源码。
1楼那张图的windows中找.lib文件,复制到vc目录,include中的复制到vc目录,
代码中#include这个头文件,链接里添加这个.lib文件。



windows中就3个文件,
所以说,基础太差,资料看的越多越迷糊。。。。
只有本站会员才能查看附件,请 登录
1