|
1
11
使用可以使用标记粘贴运算符,如下所示:
|
|
|
2
1
不管这在当前区域设置中是否合理,只要运行时系统和编译器接受它作为有效的文件名,就可以有一个基本上包含垃圾的源文件名。 如果作为一个用户,您的语言环境与文件系统中使用的编码不同,那么您会看到很多????还是一样。
但是
如果
两个地区都同意编码,一个普通的
因此,简短的答案是,只有当您的系统采用一致的W.R.T编码时,它才能工作。否则你就走运了,因为猜测编码是一项相当困难的任务。 |
|
|
3
-1
至于编码,我想是文件系统使用的,可能是Unicode。 至于处理它,如何改变你的代码,比如:
(FixThisString的实现留给学生作为练习。) |
|
|
4
-1
最好的解决方案是在可移植文件名字符集中使用源文件名
gcc可能不关心;它将所有文件名视为8bit字符串,因此如果gcc可以访问该文件名,它的名称将是可表示的。(我知道cygwin默认提供了一个utf-8环境,而modern*nix通常是utf-8。)对于msvc,您可以使用预处理器进行预处理。
|
|
|
5
-1
在MSVC中,您可以打开Unicode并获取UTF-16编码字符串。它在某个地方的项目属性中。此外,您应该只使用wcout/cout而不是printf/wprintf。Windows在Unicode存在之前需要Unicode,因此它们有一个自定义的多字节字符编码,这是默认的。但是,Windows确实支持UTF16——例如,C。
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |