Sygwin kullanarak CP1256'dan ISO-8859-6'ya kodlamayı dönüştürmeye çalıştım, ancak dönüştüremiyor!
ve yardım?
$ iconv -f CP1256 -t ISO-8859-6 cca.txt > cca1.txt
iconv: cca.txt:791:41: cannot convert
sonucu sed -n '791p' cca.txt | od -c
olduğu
Sygwin kullanarak CP1256'dan ISO-8859-6'ya kodlamayı dönüştürmeye çalıştım, ancak dönüştüremiyor!
ve yardım?
$ iconv -f CP1256 -t ISO-8859-6 cca.txt > cca1.txt
iconv: cca.txt:791:41: cannot convert
sonucu sed -n '791p' cca.txt | od -c
olduğu
Yanıtlar:
Windows-1256 ve ISO-8859-6 karakter haritalarına bakarsanız, 1256'nın her noktada bir karaktere sahip olduğunu ancak 8859-6'nın çok fazla boşluğu olduğunu görebilirsiniz. Bu yüzden dönüşüm yaparken, hedef kodlamada olmayan bir karakter varsa iconv
, şikayet edecektir.
Hangi sürüme sahip iconv
olduğunuza bağlı olarak , -c
seçeneği kullanabilirsiniz ve dönüştürülemeyen bu karakterler düşecek - dosya daha kısa olacaktır. Veya --unicode-subst="@"
geçersiz karakterlerin yerine @
dönüştürülebilir olan karakterleri kullanacak bir şey kullanabilirsiniz . Genişleme dahil (örneğin "[%u]"
parantez içindeki Unicode değerine dönüşecektir) , bu ikame ile ilgili olarak biraz esneklik olduğuna dikkat edin.
Cygwin bu seçeneklere sahip değilse, yakın tarihli bir Linux veya Mac OS X'i deneyebilirsiniz.
Her durumda, ortaya çıkan dosya yalnızca gerçekten ISO-8859-6'da olan karakterleri içerebilir.
sed -n '791p' cca.txt | od -c