Metin kodlamalarını bir türden diğerine dönüştürebilen bir Mac OS X Komut Satırı uygulaması var mı? (Özellikle Mac OS Roman'ı utf8'e dönüştürmek için)


16

Mac OS X 10.8'de standart Western Mac OS Roman kodlamasında kaydedilmiş bir metin dosyasını daha genel UTF-8'e dönüştürme yeteneğini veren bir komut satırı yardımcı programını çağırmak istiyorum.

Yardımcı programı, oluşturduğum bir AppleScript'ten arayacağım. AppleScript, çok büyük metin bloklarıyla çalışırken son derece yavaştır. Bu nedenle, metin ayrıştırma ve dönüşümümü OS X komut satırını kullanarak yapmak istiyorum. Metin ayrıştırma yapmama izin veren "sed" adlı bir araç buldum. Bununla birlikte, dosyanın temizlenmesi gereken birçok öğe vardır, dosya utf-8 olarak açılırsa çöp gibi görünen karakterler vardır (örneğin akıllı tırnaklar ve elipsler).

Metin kodlama dönüştürme zorlama dosyadaki tüm utf8 olmayan karakterleri ortadan kaldırmak için yardımcı olabilir düşünüyorum. Ancak, "sed" metin kodlamasını nasıl kolayca dönüştürebilirsiniz göremiyorum.

MacRoman olarak temp txt dosyasını yerleşik AppleScript rutinlerini kullanarak diske zaten kaydetmiş olacağım.

Metin kodlamasını dönüştürebilen yerleşik bir komut satırı aracıyla ilgili herhangi bir fikriniz var mı? Performans ve yerleşik için komut satırı, çünkü komut dosyamın diğer kullanıcıları yerleşik değilse uygun araç setine sahip olmayacaklardır.

Yardımın için teşekkürler!


Komut iconv.
bmargulies

@bmargulies: MacRoman'da kodlanmış bir dosyada iconv denediğimde ve onu UTF-8'e dönüştürmeye çalıştığımda, orijinal "alışılmadık karakterler" yerine çöp karakterler alıyorum. Örneğin, üç nokta "Äö√Ѭ∂‚Äö√Ѭ∂" e dönüşür. Üç noktanın incelikle döneme dönüşmesini beklerim. Akıllı alıntılar aynıdır, "Äö√Ñ√≤" ye dönüşerek garip metne de dönüşürler. Kullandığım sözdizimi: cat source.txt | iconv -f MacRoman -t UTF-8> iconv_test.txt iconv'ye tüm metni uygun bir şekilde uygun değiştirmelere dönüştürmesini söyleyen belirli bir CLI sözdizimi var mı?

Ve hangi tartışmaları geçiyorsunuz?
bmargulies

@ Darkstar - aynı prosedür benim için iyi çalıştı. Kaynağınızın MacRoman'da olduğundan emin misiniz?
Tom Gewecke

1
Excel'de bu sorun olmamalıdır, ithalat için kodlamayı istediğiniz gibi ayarlayabilmelisiniz, örneğin bkz. Superuser.com/questions/280603/…
Tom Gewecke

Yanıtlar:


8

ASCII olmayan karakterleri ASCII değişkenlerine dönüştürmenin başka bir yolu da kullanmaktır iconv -t ASCII//TRANSLIT:

$ echo ‘’“”–—…äé | iconv -t ASCII//TRANSLIT
''""--..."a'e

ASCII//IGNOREASCII olmayan karakterleri kaldıracaktır, ancak bunu örneğin ile de yapabilirsiniz tr -dc '\0-\177'.


iconvHarf çevirisi izni var mı : ä → a "?
dan

@danielAzuelos Bilmiyorum. Yine de karakterlerin değiştirilmesi, uygulamaya bağlıdır: örneğin Debian äile gelen iconv, sadece yerine geçer a.
Lri

28

iconv burada tercih edilen araç kesinlikle:

iconv -f MACROMAN -t UTF-8 your-roman-encoded-file.txt > utf-8-encoded-file.txt

iconv --listDesteklenen tüm kodlamaların bir listesini görmek için çalıştırın .


MacRoman olmadığını, ancak "iso-8859-1" olduğunu anladıktan sonra tekrar denedim. Hala yapmasını istediğim şeyi yapmadı. Ben iconv ne yapmak istiyorum yapabilirim sanmıyorum: zarif süslü karakterleri standart dönemler ve kesme işaretleri ve çift tırnak ile zarifçe değiştirin.
Darkstar
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.