windows - 主机名是否保证是有效的 Windows 目录名称?

标签 windows directory hostname

我已通读 Valid characters of a hostname?以及相关的维基页面。我无法确定的是,如果我在具有扩展主机名的 Windows 机器上,gethostname() 是否会返回名称的 ToAscii 版本或 UTF8 字符串?

更重要的是可以

gethostname(buffer,LEN);
mkdir(buffer, mode);

是否曾因名称无效而失败?

最佳答案

好像有一些useful information on hostnames在 MSDN 上的 DNS 主机名和 NetBIOS 主机名。似乎暗示主机名可能确实是 UTF-8,但这不是决定性的。

因此,如果您从 gethostname 获得 UTF-8,您可能必须将其转换为 UTF-16(或系统默认代码页)才能调用任何创建目录的 Windows 函数。另请注意,不同的文件系统对字符集有不同的规则。 NTFS 将非常优雅地处理 Unicode,但 FAT 不会。

您可以尝试将本地计算机的名称更改为具有非 ASCII 字符的名称(甚至可能是系统默认代码页中没有的某些字符)。

关于windows - 主机名是否保证是有效的 Windows 目录名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10250319/

相关文章:

windows - Windows 应用程序的性能分析。 Visual Studio Profiler 的更好替代品?

windows - CreateObject 和 Wscript.CreateObject 有什么区别?

c# - Windows 10 : How to determine whether a process is an App/Background Process/Windows Process

windows - 如何创建 .BAT 文件以从 HTTP\ftp 服务器下载文件?

java - 我想用Java在计算机的目录中创建一个文件

java - 如何使用java仅保存zip文件并删除其他文件夹?

google-cloud-platform - 在 Google Cloud Compute 上永久更改主机名 - WHM

c++ - 如何在 C++ 中从 Windows 中的 env 中读取

linux - 在 Linux 服务器上触发主机名 "withsometest"时会发生什么

php - 为什么 php PDO 在连接到远程托管的 mysql 数据库时使用与 mysql_connect() 使用的主机名不同的主机名?