Saya memiliki beberapa file dengan nama yang berisi berbagai karakter Unicode. Saya ingin mengganti nama mereka menjadi hanya berisi karakter ASCII yang "dapat dicetak" (32-126).
Misalnya,
Läsmig.txt //Before
L_smig.txt //After
Mike’s Project.zip
Mike_s Project.zip
Atau untuk poin bonus, transkrip ke karakter terdekat
Läsmig.txt
Lasmig.txt
Mike’s Project.zip
Mike's Project.zip
Idealnya mencari jawaban yang tidak memerlukan alat pihak ke-3. (Sunting: Skrip dianjurkan; Saya hanya mencoba untuk menghindari aplikasi niche shareware yang perlu diinstal untuk bekerja)
Cuplikan shell daya yang menemukan file yang saya ingin ubah namanya:
gci -recurse | dimana {$ _. Nama -match "[^ \ u0020- \ u007E]"}
Pertanyaan python serupa yang belum terjawab - https://stackoverflow.com/questions/17870055/how-to-rename-a-file-with-non-ascii-character-encoding-to-ascii
windows-7
rename
filenames
batch-rename
RJFalconer
sumber
sumber
Jawaban:
Saya menemukan topik serupa sini pada Stack Overflow.
Dengan kode berikut sebagian besar karakter akan diterjemahkan ke "karakter terdekat" mereka. Meskipun saya tidak bisa mendapatkan
’
diterjemahkan. (Mungkin ya, saya tidak bisa membuat nama file di prompt dengan itu;) Theß
juga tidak diterjemahkan.Edit:
Saya menambahkan beberapa kode untuk memeriksa apakah nama file sudah ada dan tambahkan
(1)
,(2)
dll ... jika ya. (Tidak cukup pintar untuk mendeteksi yang sudah ada(1)
dalam nama file yang akan diganti nama sehingga dalam hal ini Anda akan mendapatkan(1) (1)
. Tapi seperti biasa ... semuanya bisa diprogram;)Edit 2 :
Ini yang terakhir untuk malam ini ...
Yang ini memiliki fungsi berbeda untuk mengganti karakter. Juga menambahkan garis untuk mengubah karakter yang tidak dikenal suka
ß
dan┤
misalnya untuk_
.sumber
The ß also does not get translated.
Mungkin karena eszett seharusnya dipetakanss
yang mana dua karakter. (Baik itu atau untukB
yang akan menjadi bodoh jika Anda tidak mencoba menggunakan 1337-berbicara.) Jelas tidak ada pemetaan bawaan, jadi Anda harus menanganinya secara terpisah.Saya percaya ini akan berhasil ...
Saya tidak memiliki rentang nama file ASCII untuk diuji.
sumber
resumé1.doc
,resumé2.doc
,resumé.doc
, dll.)