2012-04-20 55 views
1

我已閱讀Valid characters of a hostname?和相關wiki頁面。我無法確定的是,如果我在具有擴展主機名的Windows計算機上,gethostname()是否會返回ToAscii版本的名稱或UTF8字符串?是否保證主機名是有效的Windows目錄名?

而且更重要的是可以

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

以往由於無法爲無效的名稱?

+0

」失敗總是一種選擇。「如果gethostname/mkdir由於名稱而不會失敗,則可能由於其他原因而失敗。 – theglauber 2012-04-20 16:54:59

+0

當然,澄清的問題。 – Thomas 2012-04-20 17:00:25

回答

0

MSDN上似乎有一些useful information on hostnames在DNS主機名和NetBIOS主機名方面。似乎表明主機名可能確實是UTF-8,但這不是決定性的。

因此,如果您從gethostname獲得UTF-8,則可能必須將其轉換爲UTF-16(或系統默認代碼頁)才能調用任何生成目錄的Windows函數。還要注意不同的文件系統對字符集有不同的規則。 NTFS將非常優雅地處理Unicode,但FAT不會。

您可以嘗試將本地計算機的名稱更改爲非ASCII字符(甚至某些不在系統默認代碼頁中的字符)。 「

+0

嗯,我希望得到一個明確的答案,但是你提供了一些很好的信息/想法,所以我會繼續向你提供。謝謝。 – Thomas 2012-05-19 04:37:04

相關問題