簡體   English   中英

Linux / Unix:主目錄中是否包含非ASCII字符?

[英]Linux/Unix: Non-ascii characters in home directory?

我在C中使用getenv(“ HOME”)來獲取用戶的主目錄,以便讀取/寫入設置文件。 但是主目錄文件名是否可能包含無法表示為8位字符的字符? (例如,Unicode或UTF-8編碼)

對於各種Linux和* BSD,這是否有所不同?

提前致謝...

是的,字符串可能是UTF-8; 但是,$ HOME的值必須是有效的UTF-8字符串,並且該字符串將僅包含完整的有效UTF-8字符。 請注意,UTF-8僅使用了大多數(但不全部;它省略了0xC0、0xC1、0xF5..0xFF)可能的8位字符值。 這意味着除非您願意,否則不必擔心太多。 特別是,UTF-8僅使用零字節來表示U + 0000,它等效於ASCII NUL或'\\0'並且被編碼為單個字節(值0)。

結論在不同平台上並沒有不同。 不同的系統可能會或多或少使創建需要非ASCII UTF-8字符的主目錄變得困難。

另請參閱: SO 164430

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM