Saya memiliki direktori dengan ~ 10.000 file gambar dari sumber eksternal.
Banyak nama file berisi spasi dan tanda baca yang tidak ramah DB atau ramah Web. Saya juga ingin menambahkan nomor SKU di akhir setiap nama file (untuk tujuan akuntansi). Banyak, jika tidak sebagian besar nama file juga mengandung karakter latin yang diperluas yang ingin saya pertahankan untuk keperluan SEO (khususnya agar nama file secara akurat mewakili konten file dalam Gambar Google)
Saya telah membuat skrip bash yang mengubah nama (menyalin) semua file ke hasil yang saya inginkan. Skrip bash disimpan di UTF-8. Setelah menjalankannya menghapus sekitar 500 file (tidak dapat file stat ...).
Saya telah menjalankan convmv -f UTF-8 -t UTF-8 pada direktori, dan menemukan 500 nama file ini tidak dikodekan dalam UTF-8 (convmv dapat mendeteksi dan mengabaikan nama file yang sudah ada di UTF-8)
Apakah ada cara mudah saya bisa mengetahui mana encoding bahasa mereka sedang menggunakan?
Satu-satunya cara saya bisa mengetahui sendiri adalah dengan mengatur terminal saya encoding ke UTF-8, kemudian iterasi melalui semua kandidat kemungkinan pengkodean dengan convmv sampai menampilkan nama yang dikonversi yang 'terlihat benar'. Saya tidak punya cara untuk memastikan bahwa 500 file ini semua menggunakan pengkodean yang sama, jadi saya perlu mengulangi proses ini 500 kali. Saya ingin metode yang lebih otomatis daripada 'terlihat benar' !!!
Anda mungkin menemukan ini berguna, untuk menguji direktori kerja saat ini (python 2.7):
Hasilnya terlihat seperti:
Untuk mengulang jalur melalui direktori saat ini, potong-dan-tempel ini menjadi skrip python kecil:
sumber