2 Linux上沒有「寬字符文件名」這樣的東西。在致電access()之前,通過nl_langinfo()獲取系統字符集並將其編碼爲該字符集。 來源 2010-01-03 02:55:05 +1 首先不要忘記'setlocale(LC_ALL,「」)' - 所有C程序都在C語言環境中啓動,您必須手動切換到環境指定的語言環境。 – ephemient 2010-01-03 18:43:32 +0 謝謝。從某種意義上說,這是一個遺憾,因爲看起來你不能在命名文件時混合語言。你可以嗎? – Srikumar 2010-01-04 11:03:18 +1 UNIX **文件名**只是一個字節數組,沒有指定語言/編碼;不管他們希望如何解釋這些字節,都取決於每個應用程序。 (是的,這確實看起來很古老,因爲它是。)所以是的,你可以對不同的文件名使用不同的編碼,但其他遍歷文件系統的人不會理解。但是,現在,所有現代Linux發行版都默認使用UTF-8 - 不管語言如何,都使用相同的編碼。 – ephemient 2010-01-04 15:08:34
首先不要忘記'setlocale(LC_ALL,「」)' - 所有C程序都在C語言環境中啓動,您必須手動切換到環境指定的語言環境。 – ephemient 2010-01-03 18:43:32
謝謝。從某種意義上說,這是一個遺憾,因爲看起來你不能在命名文件時混合語言。你可以嗎? – Srikumar 2010-01-04 11:03:18
UNIX **文件名**只是一個字節數組,沒有指定語言/編碼;不管他們希望如何解釋這些字節,都取決於每個應用程序。 (是的,這確實看起來很古老,因爲它是。)所以是的,你可以對不同的文件名使用不同的編碼,但其他遍歷文件系統的人不會理解。但是,現在,所有現代Linux發行版都默認使用UTF-8 - 不管語言如何,都使用相同的編碼。 – ephemient 2010-01-04 15:08:34