Unicode dosya isimleri nasıl düzeltilir?


3

NTFS dosya sistemine sahip Windows 7'ye sahibim. Dosya adlarım ve dizin adlarım şöyle:

Kispál és a Borz - 02 - Tökéletes Helyettes

Onları dönüştürmek istiyorum:

Kispál és a Borz - 02 - Tökéletes Helyettes

Dosya sistemi gibi dosya adlarını saklayabilir フリー百科事典, bu nedenle kesinlikle unicode desteğine sahiptir.

Hikayeyi hayal ettiğim gibi, uzun zaman önce mükemmeldiler. Sonra bir UTF-8'den bir Latin-1 dosya sistemine, daha sonra bu UTF-8'i destekleyen dosya sistemine geri aktarıldılar. Teoride, tüm bilgiler var, bu karakterleri düzeltmek için C'ye bir program yazabilirim, ama zaten bir yerde birinin yaptığını varsayıyorum.

Dönüşüm yapabilecek herhangi bir yardımcı program biliyor musunuz?

Yanıtlar:


1

Benim sorunum, Windows 10 Explorer'ın Unicode dosya adlarını doğru göstermemesiydi. Adı Unicode'du, ancak ekranda çöp görünüyordu. Cevap, ben yeniden başlattığımda sorunun ortadan kalkmasıydı.


0

Çeviri bölümünü yapan bir C / C ++ hibridi yazdım (hiçbir şeyi yeniden adlandırmaz, sadece kötü bayt dizilerini iyi olanlara dönüştürür). Bu yazının sonundaki bağlantıyı kullanarak indirebilirsiniz.

Giriş dosyasının bir UTF-8 akışı olarak bir UNICODE kod pozisyonu dizisi halinde kodu çözülür, bu kod daha sonra başka bir kod sayfasına dönüştürülmez. Tüm kod konumları 256'nın altındadır, orijinal UTF-8 dizesinin bayt sırasını temsil eder. Bu yüzden sadece bu kod pozisyonlarını çıktıya bayt olarak yazıyorum. Sonuç doğru bir UTF-8 dizesidir. Hala benim sorunum için bir uygulama değil, çözümün özüdür.

Program Linux altında yazılmış ve test edilmiştir, ancak herhangi bir işletim sistemi üzerinde çalışmalıdır. Kullanım örneği:

nil@hippy:~/playground/c++$ g++ utf8decode.cpp -o utf8decode
nil@hippy:~/playground/c++$ cat > file
Kispál és a Borz - 02 - Tökéletes Helyettes
nil@hippy:~/playground/c++$ cat file | ./utf8decode
Kispál és a Borz - 02 - Tökéletes Helyettes
Characters found: 48
nil@hippy:~/playground/c++$

Daha önce bir UTF-8 karakter sayacı yazdım ve değiştirdim. Tüm programı bir saat içinde yazmadım. Kaynak: http://pastebin.com/Hy7tVt5A http://pastebin.com/NFJUP0R5


0

Bunları toplam komutan çoklu yeniden adlandırma aracıyla, dosya adlarını düzenle düğmesiyle düzeltmek mümkündür.


4
Cevabınızı biraz detaylandırabilir misiniz? Gibi, adımların kısa bir listesi?
slhck

Şimdi emin değilim, dosya isimlerinin listesini metin düzenleyicide açmak mümkün. utf-8'e dönüştürmek için notepad ++ veya başka bir program kullanın, açılan dosyayı kaydedin, sonra toplam komutanınız muhtemelen çoklu adda bunu kullanır.
dinar qurbanov

0

Dinar Qurbanov'un verdiği cevabı açıklamama izin verin. Total Commander v7 veya daha üstündeki kodlama dosya adlarını düzeltmek için çoklu adlandırma aracını kullanmanız gerekir (Ctrl + M).

Burada klasör benzeri bir düğme bulacaksınız, tıklayın ve dosya adlarını içeren bir metin dosyası almak için 'İsimleri düzenle'yi seçin. Onları herhangi bir araç / editör ile düzelttikten sonra, tekrar yapıştırın ve editörü kapatın.

Dosya adlarını düzenlemek için bir düğme


"Dinar qurbanov tarafından verilen cevabı açıklamama izin verin" - Ayrıntılı açıklamalarınız bir yorum olarak sunulmalıydı, böylece cevabın yazarı cevabı iyileştirmeyi düşünebilirdi.
Ramhound

1
Maalesef, yorum yapmak için yeterli itibarım yok.
pati

Yorum bir cevaba ait değil. Yorum bir cevap olarak sunulmamalıdır. İstediğin ifadeleri al. Yorum gönderememenizin, yorum içermeyen kaliteli bir cevap göndermeyle ilgisi yoktur. Eğer bir cevap olarak yorum gönderirseniz, aslında yorum gönderecek kadar itibar kazanmayacaksınız
Ramhound
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.