2

我已经阅读了主机名的有效字符?和相关的维基页面。我无法确定的是,如果我在具有扩展主机名的 Windows 机器上,gethostname() 会返回名称的 ToAscii 版本还是 UTF8 字符串?

而且更重要的是可以

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

是否因名称无效而失败?

4

1 回答 1

0

就 DNS 主机名和 NetBIOS 主机名而言,MSDN上似乎有一些关于主机名的有用信息。似乎表明主机名可能确实是 UTF-8,但这不是决定性的。

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

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

于 2012-04-20T18:20:52.637 回答