水木社区手机版
首页
|版面-C程序设计语言(CProgramming)|
新版wap站已上线
返回
1/1
|
转到
主题:[求助]请教个win下fopen的路径中包含utf8编码的问题
楼主
|
il15
|
2025-09-09 09:35:56
|
展开
我用的是win11, visual studio17,
如果在代码里面直接写 fopen("中文路径1/ab","r"),它能打开。
但我在 "中文路径1/ab" 里面写入一行比如 中文路径2/cd,那么我用fgets() 读入这行再 fopen打开就会报错。
想请教一下如何解决。
--
FROM 112.93.142.*
2楼
|
il15
|
2025-09-10 17:10:36
|
展开
多谢!它是以utf-8 编码存放的,所以不对。
网上找了半天,发现 MultiByteToWideChar 和 WideCharToMultiByte可以实现下面的转换:
ansi <-> unicode <-> utf-8。
总算解决了。
【 在 z16166 的大作中提到: 】
: 那取决于“中文路径2/cd”这个字符串在文件里是以什么编码存放的,
: 如果是ANSI/GBK的编码格式存放的,就没问题。因为fopen()打开文件时如果没指定编码,那么fgets()就用ansi编码读取。
: 如果是utf8、utf16的编码格式存放的,就有问题。
: ...................
--
FROM 122.193.118.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版