c++程序中,无法识别中文路径怎么办?

Cworld 2010-02-25 08:22:00
问题描述:我是在OpenSceneGraph中,读取一个文件的路径,文件路径包含了中文,这个时候OSG类库就不支持了,看网上说使用 setlocale( LC_ALL, "chs" );就可以支持了,可是还是不起作用,然后我使用 const wchar_t * 表示中文路径,在把const wchar_t* 转化为 UTF-8格式,也还是不能读取,请问应该怎么办呢?怎么才能识别中文呢?请大家帮忙看看!
...全文
3239 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
suanyuan 2010-03-01
  • 打赏
  • 举报
回复
不要用中文路徑,拿石頭砸自己的腳。
zeerd 2010-02-26
  • 打赏
  • 举报
回复
在编译器安装路径下找到tchar.h,研究一下上半部分……
joxhaha 2010-02-26
  • 打赏
  • 举报
回复
加上这个试试 std::locale::global(std::locale(""));
cphj 2010-02-26
  • 打赏
  • 举报
回复
如果软件是自己使用,担心程序复杂,可以避免用中文路径和文件名
但如果要商用,还是要考虑支持中文路径和文件名,否则分发到用户之后会出问题

以下示例如何用宽字符API处理中文路径和文件名
#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;
}
blpluto 2010-02-26
  • 打赏
  • 举报
回复
2楼正解,使用Unicode版本的CRT或者API函数,

一般多字符编码里面中文很容易出现乱码,所以就不认识了
kingstarer 2010-02-26
  • 打赏
  • 举报
回复
用短路径试试 网上找找 有个把长路径改为短路径的api
evanxgsh 2010-02-26
  • 打赏
  • 举报
回复
/******************
然后我使用 const wchar_t * 表示中文路径,在把const wchar_t* 转化为 UTF-8格式,
*****************/

你有没有处理做大小端对齐处理 ?
Defonds 2010-02-26
  • 打赏
  • 举报
回复
引用 3 楼 defonds 的回复:
引用楼主 cworld 的回复:问题描述:我是在OpenSceneGraph中,读取一个文件的路径,文件路径包含了中文,这个时候OSG类库就不支持了,看网上说使用    setlocale( LC_ALL, "chs" );就可以支持了,可是还是不起作用,然后我使用 const wchar_t * 表示中文路径,在把const wchar_t* 转化为 UTF-8格式,也还是不能读取,请问应该怎么?-
路径少用中文
Defonds 2010-02-26
  • 打赏
  • 举报
回复
引用楼主 cworld 的回复:
问题描述:我是在OpenSceneGraph中,读取一个文件的路径,文件路径包含了中文,这个时候OSG类库就不支持了,看网上说使用    setlocale( LC_ALL, "chs" );就可以支持了,可是还是不起作用,然后我使用 const wchar_t * 表示中文路径,在把const wchar_t* 转化为 UTF-8格式,也还是不能读取,请问应该怎么办呢?怎么才能识别中文呢?请大家?-
路径中文
FoxMessire 2010-02-26
  • 打赏
  • 举报
回复
学习一下,遇到了这样的问题
蒋晟 2010-02-26
  • 打赏
  • 举报
回复
调用Unicode版本的CRT或者API函数。
d383137359 2010-02-25
  • 打赏
  • 举报
回复
把那文件扔根目录就行了吧,编程里少用中文,最好不用,容易出问题

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧