Çalıştığım bir dosyada bulduğum garip bir karakteri belirlemeye çalışıyorum:
$ cat file
�
$ od file
0000000 005353
0000002
$ od -c file
0000000 353 \n
0000002
$ od -x file
0000000 0aeb
0000002
Dosya ISO-8859 kodlaması kullanıyor ve UTF-8 biçimine dönüştürülemiyor:
$ iconv -f ISO-8859 -t UTF-8 file
iconv: conversion from `ISO-8859' is not supported
Try `iconv --help' or `iconv --usage' for more information.
$ iconv -t UTF-8 file
iconv: illegal input sequence at position 0
$ file file
file: ISO-8859 text
Asıl sorum buradaki çıktıyı nasıl yorumlayabilirim od
? Bana farklı karakter gösterimleri arasında çevirmek sağlar bu sayfayı kullanmaya çalışıyorum , ama bana 005353
bir "Hex kod noktası" olarak 卓
doğru görünmüyor ve 0aeb
bir "Hex kod noktası" olarak ૫
, yine yanlış görünüyor olduğunu söylüyor .
Yani, nasıl üç seçenekten birini kullanabilirsiniz (edebilirsiniz 355
, 005353
ya da 0aeb
temsil ettikleri gerekiyordu ne karakter öğrenmek için)?
Ve evet, Unicode araçlarıyla denedim ama geçerli bir UTF karakteri gibi görünmüyor:
$ uniprops $(cat file)
U+FFFD ‹�› \N{REPLACEMENT CHARACTER}
\pS \p{So}
All Any Assigned Common Zyyy So S Gr_Base Grapheme_Base Graph X_POSIX_Graph
GrBase Other_Symbol Print X_POSIX_Print Symbol Specials Unicode
Unicode U + FFFD karakterinin açıklamasını anlarsam, gerçek bir karakter değil, bozuk bir karakter için bir yer tutucu. Dosya aslında UTF-8 kodlanmamış olduğundan mantıklı.
ë
veriler başka bir programda kullanıldığında gördüğüm şey! Ama bunu nasıl bilebilirim? Verilerimde bir yerde değil mi? Nasıl buldun? Oh çalıştı iconv
ile -f ISO-8859
ancak şikayetçi conversion from
supported` değildir ISO-8859' .
eb
Gördüm, sadece kullanmam ve 0x
onaltılı göstergeyi ya da her neyse görmezden gelmem gerekiyordu. Bu tür şeyleri bilmemem derin. @StephenKitt açıklayan bir cevap gönderebilir misiniz?
iconv
başarılı olurdunuz; ve / veya örneğin Wikipedia'da bakmış olabilirsiniz. Bu çok özel kodlama için, fileformat.info/info/unicode/char/00eb/index.htm da çalışır (Unicode, 128-255 aralığında ISO-8859-1'e eşdeğerdir, ancak elbette hiçbir UTF kodlaması onunla uyumlu değildir ).
iconv
kaynak karakter kümesini belirtmediğiniz için şikayet eder, bu nedenle muhtemelen UTF-8 olan varsayılanınızı kullanır.)