Metin dosyalarını karakter kümeleri arasında dönüştürmek için en hızlı, en kolay araç veya yöntem nedir?
Özellikle, UTF-8'den ISO-8859-15'e ve tam tersine dönüştürmem gerekiyor.
Her şey yolunda gider: En sevdiğiniz kodlama dilinde tek satır, komut satırı araçları veya işletim sistemi, web siteleri vb. İçin diğer yardımcı programlar.
Linux/UNIX/OS X/cygwin'de:
Gnu iconvTroels Arvin tarafından önerilen _, en iyi şekilde kullanılır filtre olarak. Evrensel olarak erişilebilir görünüyor. Örnek:
$ iconv -f UTF-8 -t ISO-8859-15 in.txt > out.txt
Ben ile işaret edildiği gibi, bir iconv kullanarak çevrimiçi dönüştürücü vardır.
Gnu recode ( manuel ) Cheekysoft tarafından önerildi - dönüştürülecek bir ya da birkaç dosya yerinde. Örnek:
$ recode UTF8..ISO-8859-15 in.txt
Bu, daha kısa takma adlar kullanır:
$ recode utf8..l9 in.txt
Recode ayrıca farklı satır sonu türleri ve kodlamalar arasında dönüştürmek için kullanılabilen surface komutunu da destekler:
Yeni satırları LF (Unix) 'den CR-LF'ye (DOS) dönüştürün:
$ recode ../CR-LF in.txt
Base64 kodlama dosyası:
$ recode ../Base64 in.txt
Onları da birleştirebilirsiniz.
Unix satır sonlarına sahip bir Base64 kodlu UTF8 dosyasını Dos satır sonlarına sahip Base64 kodlu Latin 1 dosyasına dönüştürün:
$ recode utf8/Base64..l1/CR-LF/Base64 file.txt
Powershell ( Jay Bazuzi ) içeren Windows'ta:
PS C:\> gc -en utf8 in.txt | Out-File -en ascii out.txt
(ISO-8859-15 desteği yok; ancak desteklenen karakter setlerinin unicode, utf7, utf8, utf32, ascii, bigendianunicode, default ve oem olduğunu söylüyor.)
İso-8859-1 desteğini mi kastediyorsunuz? "String" kullanmak, örneğin; tam tersi için
gc -en string in.txt | Out-File -en utf8 out.txt
Not: Olası numaralandırma değerleri "Bilinmeyen, Dize, Unicode, Bayt, BigEndianUnicode, UTF8, UTF7, Ascii" dir.
Bağımsız hizmet programı yaklaşım
iconv -f ISO-8859-1 -t UTF-8 in.txt > out.txt
-f ENCODING the encoding of the input
-t ENCODING the encoding of the output
Bu argümanların ikisini de belirtmeniz gerekmez. Genellikle UTF-8 olan geçerli yerel ayarınıza varsayılan olarak kullanılırlar.
vim
'nız varsa bunu kullanabilirsiniz:
Her kodlama için test edilmemiştir.
Bunun en güzel tarafı kaynak kodlamasını bilmek zorunda olmamanız.
vim +"set nobomb | set fenc=utf8 | x" filename.txt
Bu komutun doğrudan dosyayı değiştirdiğini unutmayın.
+
: Bir dosyayı açarken doğrudan komutu girmek için vim tarafından kullanılır. Genellikle bir dosyayı belirli bir satırda açmak için kullanılır: vim +14 file.txt
|
: Birden çok komutun ayırıcısı (bash'ta ;
gibi)set nobomb
: hayır utf-8 BOMset fenc=utf8
: Yeni kodlamayı utf-8 doc link olarak ayarlayınx
: Dosyayı kaydet ve kapatfilename.txt
: dosyanın yolu"
: Borular nedeniyle tırnaklar burada. (aksi takdirde bash bunları bash borusu olarak kullanır)Linux altında, farklı karakter kümeleri ile herhangi bir satır sonunu çözme sorunu arasında geçiş yapmak için çok güçlü recode komutunu kullanabilirsiniz. recode -l , aracın arasında dönüştürebileceği tüm biçimleri ve kodlamaları gösterir. ÇOK uzun bir liste olması muhtemeldir.
iconv -f FROM-ENCODING -t TO-ENCODING file.txt
Ayrıca birçok dilde iconv tabanlı araçlar var.
Get-Content -Encoding UTF8 FILE-UTF8.TXT | Out-File -Encoding UTF7 FILE-UTF7.TXT
En kısa sürüm, BOM girişinin doğru olduğunu kabul ederseniz
gc FILE.TXT | Out-File -en utf7 file-utf7.txt
Bunu .bashrc
içine koydum:
utf8()
{
iconv -f ISO-8859-1 -t UTF-8 $1 > $1.tmp
rm $1
mv $1.tmp $1
}
.. gibi dosyaları dönüştürebilmek için:
utf8 MyClass.Java
Windows'ta ISO-8859-1 - UTF-8 dönüşümlerini yapmak için Notepad ++ programını kullanabildim. "Encoding"
ve ardından "Convert to UTF-8"
öğesini tıklayın.
Tüm eşleşen metin dosyalarının karakter kodlamasıotomatik olarak algılanır ve eşleşen tüm metin dosyaları utf-8
kodlamasına dönüştürülür:
$ find . -type f -iname *.txt -exec sh -c 'iconv -f $(file -bi "$1" |sed -e "s/.*[ ]charset=//") -t utf-8 -o converted "$1" && mv converted "$1"' -- {} \;
Bu adımları gerçekleştirmek için, -exec
ile bir alt Shell sh
kullanılır, -c
bayrağıyla bir astarı çalıştırın ve dosya adını "$1"
ile -- {}
konum argümanı olarak geçirin. Arada, utf-8
çıktı dosyası geçici olarak converted
olarak adlandırılır.
file -bi
şu anlama gelir:
-b, - kısa
Dosya adlarını çıktı satırlarına hazırlamayın (kısa mod).
-i, --mime
File komutunun daha geleneksel insan tarafından okunabilenlerden ziyade mime tipi dizgileri çıkarmasına neden olur. Böylece ‘metin/düz; charset = “ASCII metni” yerine us-ascii ”.
find
komutu, bu tür dosya yönetimi otomasyonu için çok kullanışlıdır.
Devamı find
galore için buraya tıklayın.
PHP iconv ()
iconv("UTF-8", "ISO-8859-15", $input);
DOS/Windows: Kod sayfasını kullanın
chcp 65001>NUL
type ascii.txt > unicode.txt
Komut chcp
, kod sayfasını değiştirmek için kullanılabilir. Sayfa 65001, UTF-8 için Microsoft adıdır. Kod sayfasını ayarladıktan sonra, aşağıdaki komutlar tarafından üretilen çıktı kod sayfası ayarında olacaktır.
normalde özellikler dosyasını (Java) yazmak için bunu linux'da kullanıyorum (nane ve ubuntu dağılımları):
$ native2ascii filename.properties
Örneğin:
$ cat test.properties
first=Execução número um
second=Execução número dois
$ native2ascii test.properties
first=Execu\u00e7\u00e3o n\u00famero um
second=Execu\u00e7\u00e3o n\u00famero dois
Not: Özel karakterleri zorlamak için bir ya da iki numaralı infazın portekiz yazdığını yazdım.
Benim durumumda, ilk çalıştırmada şu mesajı aldım:
$ native2ascii teste.txt
The program 'native2ascii' can be found in the following packages:
* gcj-5-jdk
* openjdk-8-jdk-headless
* gcj-4.8-jdk
* gcj-4.9-jdk
Try: Sudo apt install <selected package>
İlk seçeneği kurduğumda (gcj-5-jdk) sorun çözüldü.
Umarım bu birine yardım eder.
Bunun için en sevdiğim araç, iki çok kullanışlı özelliğe sahip olan Jedit (Java tabanlı bir metin editörü).
Bu Python betiğini kullanın: https://github.com/goerz/convert_encoding.py Herhangi bir platformda çalışır. Python 2.7 gerektirir.
Ruby ile:
Ruby -e "File.write('output.txt', File.read('input.txt').encode('UTF-8', 'binary', invalid: :replace, undef: :replace, replace: ''))"
Kaynak: https://robots.thoughtbot.com/fight-back-utf-8-invalid-byte-sequences
Yüklenen dosyanın kodlamasını IntelliJ IDEA IDE içinde, mevcut karakter setinin gösterildiği durum çubuğunun (altta) sağındaki değiştirin. Yeniden Yükle veya Dönüştür komutunu kullanır, Dönüştür'ü kullanır. Orijinal dosyayı önceden yedeklediğinizden emin olun.