闻心阁

一蓑烟雨看苍生,半壶浊酒笑红尘

basicexcel无法读取中文文件解决方案

2013-04-27 约 1 分钟读完 搬砖秘籍

之前我帮学姐写一个程序,要求从excel读取文件然后写入word,我不是一个微软控,不喜欢微软的一些东西,于是采用了basicexcel这个库,但是遇到了无法读取中文文件名的问题。

解决方法很简单,这里有一个修正版本的basicexcel,点击这里下载

为什么这么解决?

问题出在BasicExcel使用fstream对象打开含中文路径的文件时,其生成的文件即是乱码,进入file_.open()方法,可以发现open的实现里用到了mbstowcs_s函数,而此函数依赖于本地化的设置,通过以下代码可解决其创建含中文路径文件的支持:

setlocale(LC_ALL,"Chinese-simplified");//设置中文环境 
file_.open(&*(filename_.begin()), mode_ | ios_base::binary);
setlocale(LC_ALL,"C"); 

参考地址:http://www.cnblogs.com/sunsmile/archive/2013/03/18/ningmengxiu5.html