Я только что понял, что у меня есть файл в моей системе; обычно перечисляет:
$ ls -la TΕSТER.txt
-rw-r--r-- 1 user user 8 2013-04-11 18:07 TΕSТER.txt
$ cat TΕSТER.txt
testing
... все же, он вылетает с программным обеспечением с ошибкой, связанной с UTF-8/Unicode. Я был действительно озадачен, так как я не мог сказать, почему такой файл является проблемой; и, наконец, я вспомнил, чтобы проверить вывод ls
с помощью hexdump
:
$ ls TΕSТER.txt
TΕSТER.txt
$ ls TΕSТER.txt | hexdump -C
00000000 54 ce 95 53 d0 a2 45 52 2e 74 78 74 0a |T..S..ER.txt.|
0000000d
... Ну, очевидно, есть несколько байтов между / вместо некоторых букв, так что я думаю, что это проблема кодировки Unicode. И я могу попытаться отослать байты назад, чтобы увидеть, что напечатано:
$ echo -e "\x54\xCE\x95\x53\xD0\xA2\x45\x52\x2E\x74\x78\x74"
TΕSТER.txt
... но я до сих пор не могу сказать, какие - если они есть - символы Юникода это.
Так есть ли инструмент командной строки, с помощью которого я могу проверить строку на терминале и получить Unicode-информацию о ее символах?