首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++程序中,无法识别中文路径怎么处理

2012-02-23 
c++程序中,无法识别中文路径怎么办?问题描述:我是在OpenSceneGraph中,读取一个文件的路径,文件路径包含了

c++程序中,无法识别中文路径怎么办?
问题描述:我是在OpenSceneGraph中,读取一个文件的路径,文件路径包含了中文,这个时候OSG类库就不支持了,看网上说使用 setlocale( LC_ALL, "chs" );就可以支持了,可是还是不起作用,然后我使用 const wchar_t * 表示中文路径,在把const wchar_t* 转化为 UTF-8格式,也还是不能读取,请问应该怎么办呢?怎么才能识别中文呢?请大家帮忙看看!

[解决办法]
如果软件是自己使用,担心程序复杂,可以避免用中文路径和文件名
但如果要商用,还是要考虑支持中文路径和文件名,否则分发到用户之后会出问题

以下示例如何用宽字符API处理中文路径和文件名

C/C++ code
#include <io.h>#include <stdio.h>void process_directory(const wchar_t * filespec) // 分析目录,遍历所有满足条件的文件{    struct _wfinddata_t fileinfo;    intptr_t handle;    if ((handle=_wfindfirst(filespec, &fileinfo)) == -1L)    {        perror("Files open error");    }    else    {        do        {            // 处理文件        } while (_wfindnext(handle, &fileinfo) == 0);        _findclose(handle);    }}int main(){    process_directory(L"C:\\数据\\*.*");    return 0;} 

热点排行