Pengendalian Fail Unicode dalam Perpustakaan Standard C
Tugas membuka fail menggunakan perpustakaan standard C boleh menjadi sangat mencabar dengan aplikasi Windows dan Unicode nama fail. Unicode sering merujuk kepada UTF-8 dalam konteks ini.
Pustaka standard C tidak mempunyai sokongan Unicode intrinsik. char dan wchar_t bukanlah pengekodan Unicode. Pada Windows, wchar_t mewakili UTF-16, tetapi perpustakaan standard tidak mempunyai sokongan eksplisit untuk nama fail UTF-8 (char bukan Unicode pada Windows).
Microsoft STL menyediakan pembina untuk strim fail yang menerima const wchar_t * nama fail, membenarkan penciptaan fail seperti berikut:
wchar_t const name[] = L"filename.txt"; std::fstream file(name);
Walau bagaimanapun, lebihan ini adalah tidak mematuhi C 11 (menjamin hanya versi berasaskan aksara). Ia juga tiada dalam pelaksanaan STL alternatif seperti libstdc GCC untuk MinGW(-w64) pada g 4.8.x.
Perhatikan bahawa perbezaan platform mempengaruhi tafsiran pengekodan. char pada Windows bukan UTF-8 dan wchar_t mungkin bukan UTF-16 pada sistem pengendalian lain. Oleh itu, mudah alih adalah satu isu. Membuka strim daripada nama fail wchar_t tidak ditentukan oleh standard dan menentukan nama fail dalam char boleh menjadi masalah kerana variasi pengekodan bergantung kepada OS.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Nama Fail Unicode dengan Boleh Dipercayai dalam Standard C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!