|
|
1
3
fopen或ofstream::open之类的函数将文件名作为char*,但这会被解释为在系统代码页中。
更改系统代码页,应用程序“停止工作” 我怀疑这就是这里所发生的事情(自win2000以来,Windows在这个领域没有大的变化)。 http://www.mihai-nita.net/article.php?artID=20050611a 从长远来看,您可能会考虑改用Unicode(并使用wopen,wofstream)。 |
|
|
2
2
|
|
|
3
0
我几乎可以肯定,在Linux上,文件名字符串是一个UTF-8字符串(例如,在EXT3文件系统中,唯一不允许的字符是斜杠和NULL),存储在一个普通的
|
|
|
4
0
|
|
|
5
0
macosx使用Unicode作为本机字符编码。基本的字符串对象是CFString和NSString。它们将字符数组存储为Unicode。 |
|
|
6
0
有人还在看这个吗?我刚刚研究了这个问题,没有找到任何答案,所以我可以在这里解释我的发现。 在VS2005中,fstream文件名处理非常奇怪:它不使用系统默认编码,即使用GetACP获得的并在控制面板/区域和语言/管理中设置的编码。但总是CP 1252——我相信。 这可能会引起很大的混乱,微软已经在以后的VS版本中消除了这种怪癖。 VS2005的所有解决方法都有其缺点:
|
|
AstralHex · 矩阵乘法代码工作不正常 10 月前 |
|
|
Giogre · 为包含许多数值字段的简单“struct”重载比较运算符 10 月前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 10 月前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 11 月前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 11 月前 |