C++ 自动检测编码

      之前使用Qt  显示中文乱码  查了一堆资料  都是写如果转换编码的    但是转换编码当然知道   问题是如何知道当前文件编码  后来想到用notepad++ 好像可以自动检测编码  所以就去找了notepad++源码来看,最后终于找到了

检测编码是通过 uchardet相关的函数进行检测的

上图中返回的cs 就是字符的编码名称    例如返回 gb2312 

返回空好像是ascii 这个到没有细研究

源码附件:https://download.csdn.net/download/qq_35665222/11774910

 

使用时需要将文件夹内所有文件添加进项目,然后include  uchardet.h这个文件

这里说一下许可证是MPL 1.1/GPL 2.0/LGPL 2.1,如果看重许可证可以使用LGPL将文件封装为动态库  避免感染到自己的项目

使用方法  :

            uchardet_t ud = uchardet_new();

            uchardet_handle_data(ud, buf, len);

            uchardet_data_end(ud);

            const char* cs = uchardet_get_charset(ud);

            uchardet_delete(ud);

buf 表示文件内容 

len 表示文件长度 

cs表示编码名称   如果想要转化为编码页  可以使用EncodingMapper这个类

     

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VS Code提供了许多强大的C语言插件,可以提高开发效率和代码质量。以下是一些常用的C插件: 1. C/C++:这是必不可少的C/C++插件,提供了代码补全、语法高亮、跳转定义等功能。 2. C/C++ Extension Pack:这是一个C/C++扩展包,包含了一系列C/C++相关的插件,如代码格式化、调试器等。 3. C/C++ Snippets:这个插件提供了许多C/C++常用的代码块,可以快速插入,提高编码效率。 4. C/C++ Advanced Lint:这个插件提供了强大的静态检测功能,可以帮助发现代码中的潜在错误和不规范的写法。 5. Better C Syntax:这个插件提供了更好的C语言语法高亮,使代码更加清晰易读。 6. Code Runner:这个插件可以直接在VS Code中运行C代码,并显示结果。 7. Include AutoComplete:这个插件可以自动补全C头文件的包含路径,方便引用其他库。 8. GBKtoUTF8:这个插件可以自动将GBK编码的文件转换为UTF-8编码,解决中文字符显示的问题。 9. compareit:这个插件可以用于比较两个文件的差异,方便代码的版本管理和合并。 10. TabNine:这是一款AI自动补全插件,可以根据上下文自动补全代码,提高编码效率。 以上是一些常用的C插件,可以根据自己的需求选择适合的插件来提升C语言开发的效率和质量。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vscode配置C/C++常用插件,亲测好用](https://blog.csdn.net/weixin_44834554/article/details/129797480)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [VsCode 常用C/C++插件大全](https://blog.csdn.net/anmo_moan/article/details/119561303)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值