Saya mencoba mengidentifikasi karakter aneh yang saya temukan dalam file yang saya kerjakan:
$ cat file
�
$ od file
0000000 005353
0000002
$ od -c file
0000000 353 \n
0000002
$ od -x file
0000000 0aeb
0000002
File ini menggunakan penyandian ISO-8859 dan tidak dapat dikonversi ke UTF-8:
$ 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
Pertanyaan utama saya adalah bagaimana saya bisa menafsirkan output di odsini? Saya mencoba menggunakan halaman ini yang memungkinkan saya menerjemahkan antara representasi karakter yang berbeda, tetapi ia memberi tahu saya bahwa 005353sebagai "titik kode Hex" adalah 卓yang tampaknya tidak benar dan 0aebsebagai "titik kode Hex" adalah ૫yang, sekali lagi, tampaknya salah .
Jadi, bagaimana saya bisa menggunakan salah satu dari tiga opsi ( 355, 005353atau 0aeb) untuk mengetahui karakter apa yang seharusnya mereka wakili?
Dan ya, saya memang mencoba dengan alat Unicode tetapi tampaknya juga bukan karakter UTF yang valid:
$ 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
jika saya memahami deskripsi karakter Unicode U + FFFD, itu sama sekali bukan karakter asli tetapi pengganti untuk karakter yang rusak. Yang masuk akal karena file tersebut sebenarnya tidak disandikan UTF-8.
ëadalah apa yang saya lihat ketika data digunakan pada program lain! Tapi bagaimana saya bisa tahu ini? Bukankah itu di suatu tempat dalam data yang saya berikan? Bagaimana caramu menemukannya? Oh saya telah mencoba iconvdengan -f ISO-8859tetapi mengeluh tentang conversion from ISO-8859' tidak supported`.
ebdan mengabaikan 0xindikator hex atau apa pun itu. Ketidaktahuan saya tentang hal semacam ini sangat mendalam. Bisakah Anda mengirim jawaban yang menjelaskan bahwa @StephenKitt?
iconvakan berhasil; dan / atau Anda bisa mencarinya misalnya di Wikipedia. Untuk pengkodean yang sangat spesifik ini, fileformat.info/info/unicode/char/00eb/index.htm juga berfungsi (Unicode setara dengan ISO-8859-1 dalam kisaran 128-255, meskipun tentu saja tidak ada pengkodean UTF yang kompatibel dengannya) ).
iconvmengeluh karena Anda tidak menentukan rangkaian karakter sumber, sehingga menggunakan default Anda yang mungkin UTF-8.)