当前位置:  编程技术>c/c++/嵌入式

VC下实现fopen支持中文的方法

    来源: 互联网  发布时间:2014-10-26

    本文导语:  VC的fopen函数第一个参数是const char*,一旦遇到中文文件名就难以应付了,如果中文是UTF8编码的话,我们还可以用下列代码将其转换为UNICODE,然后用_wfopen函数打开文件。 代码如下: bool UTF8ToUnicode(const char* UTF8, wchar_t* strUnicode...

VC的fopen函数第一个参数是const char*,一旦遇到中文文件名就难以应付了,如果中文是UTF8编码的话,我们还可以用下列代码将其转换为UNICODE,然后用_wfopen函数打开文件。

代码如下:

bool UTF8ToUnicode(const char* UTF8, wchar_t* strUnicode)
{
 DWORD dwUnicodeLen;    //转换后Unicode的长度
 TCHAR *pwText;      //保存Unicode的指针
// wchar_t* strUnicode;    //返回值
 //获得转换后的长度,并分配内存
 dwUnicodeLen = MultiByteToWideChar(CP_UTF8,0,UTF8,-1,NULL,0);
 pwText = new TCHAR[dwUnicodeLen];
 if (!pwText)
 {
 return false;
 }
 //转为Unicode
 MultiByteToWideChar(CP_UTF8,0,UTF8,-1,pwText,dwUnicodeLen);
 //转为CString
 wcscpy(strUnicode, pwText);
 //清除内存
 delete []pwText;
 return true;
}

这个函数的用法如下:

wchar_t strUnicode[260];
UTF8ToUnicode(streamName, strUnicode);
FILE* fid = _wfopen(strUnicode, L"rb");
// FILE* fid = fopen(streamName, "rb");//此为原来的方法,遇到中文不能正确打开

上述函数仍有不够完善之处,如参数strUnicode的长度不能灵活设置,读者可根据自身需求进一步加以完善!


    
 
 

您可能感兴趣的文章:

  • 在实现简体中文转繁体中文,繁体中文转简体中文时,JAVA得如何实现???
  • mysql中文排序注意事项与实现方法
  • 用FreeBSD Gnome 怎样实现中文兼容?
  • 《linux网络系统架构设计与实现》谁有中文版的给我一份
  • 在red hat 7.2 中如何实现中文输入?是不是要装个输入法呀?有微软输入法吗?
  • 如何保持原来的英文界面的前提下实现中文输入?
  • C#实现判断字符串中是否包含中文的方法
  • Java实现按中文首字母排序的具体实例
  • 让MySQL支持中文排序的实现方法
  • android TextView设置中文字体加粗实现方法
  • 在jbuilder6下如何存取中文数据库,内码的转换如何实现?高手请进,100分奉上
  • CodeIgniter中ellipsize()支持中文截断实现方法
  • php实现文件下载(支持中文文名)
  • C# 中文简体转繁体实现代码
  • 请问:如何实现在jsp页面中往数据库中添加中文记录!
  • python将html转成PDF的实现代码(包含中文)
  • php实现文件下载、支持中文文件名的示例代码
  • 使用Discuz关键词服务器实现PHP中文分词
  • python 中文字符串的处理实现代码
  • 我这个程序是实现非法中文字符的消除,在linux 下运行,能转换成功,可最后提醒有段错误。
  • EJB QL都支持什么函数啊?能不能支持trim函数呢?如果不能,应该怎么实现这样的功能呢?
  • 请问jsp是否支持access数据库?如果支持,那么该怎样写代码用以实现连接???谢谢!
  • linux中的3D硬件加速支持的动态炫彩桌面功能是如何程序实现的?
  • 通过viewport实现jsp页面支持手机缩放
  • 我实现了个J2EE技术的服务器,支持TCP、UDP和数据库,由于性能的原因,需要改为C或C++实现,我是C、C++新手,我该如何入手呢?看什么样的
  • 求用c语言实现支持ipv6的telnet服务器源代码
  • php 统计字数(支持中英文)的实现代码
  • spring实现jdbctemplate添加事务支持示例
  • android实现蓝牙文件发送的实例代码,支持多种机型
  • 深入Resource实现多语言支持的应用详解
  • jQuery实现返回顶部功能适合不支持js的浏览器
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • socket实现多文件并发传输,求助多线程实现问题?
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • interface 到底有什么用???实现接口,怎么实现??
  • 通过javascript库JQuery实现页面跳转功能代码
  • 怎么用Jsp实现在页面实现树型结构?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • php实现socket实现客户端和服务端数据通信源代码
  • 网站重定向用C语言实现iptables,ACL实现
  • flash AS3反射实现(describeType和getDefinitionByName)
  • 在linux下如何编程实现nslookup命令实现的IP地址和域名互相转换的功能?
  • boost unordered_map和std::list相结合的实现LRU算法
  • 求在freebsd+Squid下实现pc上网的透明代理的实现方法!给出具体配置方法的高分谢!
  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • linux下如实现与window下的驱动器实现文件共享??
  • 使用java jdk中的LinkedHashMap实现简单的LRU算法
  • qt如何实现:操作键盘实现数据的滚动?
  • iphone cocos2d 精灵的动画效果(图片,纹理,帧)CCAnimation实现
  • 我想用APPLET实现读取客户端的图片文件,该如何实现?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • PING是用TCP,还是用UDP来实现的?或是采用其它协议实现的?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3