PHP tespit dosya sistemi kodlama

2 Cevap php

Ben PHP kullanarak, bir dosyasistemiyle olmayan-latin dosya adları ile dosyaları kaydetmek gerekir.

Ben bu işi çapraz platform yapmak istiyorum. Nasıl ben dosyası yazmak için kullanabileceğiniz hangi kodlama biliyor musunuz? Ben pek çok modern dosya sistemleri (bu doğru mudur?) UTF-8 tabanlı anlıyorum, ama ben Windows XP (örneğin) şüpheliyim.

Yani, sağlam bir algılama mekanizması var mı?

2 Cevap

Değil bir Sorunuzun cevabı, ancak (... sıralama, arama gibi) dosya sistemi düzeyinde kapsamlı çalışmaları yapmak gerek yoksa, {özetlenen sorun için güzel bir çapraz platform çözümü vardır [(0)] }: URLEncode() dosya adlarını ing.

Hörensägen.txt 

dönüştü alır

H%c3%b6rens%c3%a4gen.txt

Herhangi bir dosya sistemi kullanmak için güvenli ve herhangi bir UTF-8 karakter eşleştirmek mümkün olduğu hangi.

Ben karmaşık garanti ve hata eğilimli konak OS'nin yetenekleri ile "doğal" bir anlaşma için çalışıyorum bu kadar tercih bulmak (işletim sistemi farklılıklara ek olarak, eminim çeşitli dosya sistemi biçimleri - FAT16, FAT32, NTFS , ExtFS versiyonları 1/2/3 .... haberdar olmak için kendi kurallarını dizi getirmek.)

Bir cevap değil, ama ... WinXP benzer UTF-8 olanlar için sadece sarma ve tüm ASCII WinAPI işlevleri (Jeffrey Richter'in kitabı "C # üzerinden CLR" göre) tabanlı UTF-8'dir.