У меня есть файл.Похоже, что в двоичном наборе символов.
$ file -bi /sys/devices/pci0000:00/0000:00:03.1/0000:0b:00.0/drm/card0/card0-DP-1/edid
inode/x-empty; charset=binary
Бесполезно звонить File.read
filepath = '/sys/devices/pci0000:00/0000:00:03.1/0000:0b:00.0/drm/card0/card0-DP-1/edid'
File.read(filepath)
# => "\u0000\xFF\xFF\xFF\xFF\xFF\xFF\u0000\u0004i\xA3'e\f\u0000\u0000\u0006\u0018\u0001\u0004\xA5<\"x:\xA5\x95\xAATO\xA1&\nPT\xB7\xEF\u0000\xD1\xC0\xB3\u0000\x95\u0000\x81\x80\x81@\x81\u0000\x81\xC0qOV^\u0000\xA0\xA0\xA0)P0 5\u0000UP!\u0000\u0000\u001A\u0000\u0000\u0000\xFF\u0000E2LMTF003173\n\u0000\u0000\u0000\xFD\u0000\u0018L\u0018c\u001E\u0004\u0011\u0001@\xF88\xF0<\u0000\u0000\u0000\xFC\u0000ASUS PB278\n \u0001\xF2\u0002\u0003\"qO\u0001\u0002\u0003\u0011\u0012\u0013\u0004\u0014\u0005\u001F\x90\u000E\u000F\u001D\u001E#\t\u0017\a\x83\u0001\u0000\u0000en\f\u0000\u0010\u0000\x8C\nЊ \xE0-\u0010\u0010>\x96\u0000UP!\u0000\u0000\u0018\u0001\u001D\u0000rQ\xD0\u001E n(U\u0000UP!\u0000\u0000\u001E\u0001\u001D\u0000\xBCR\xD0\u001E \xB8(U@UP!\u0000\u0000\u001E\x8C\nА @1 \f@U\u0000UP!\u0000\u0000\u0018\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\x96"
Чтение в двоичном виде бесполезно
File.open(filepath, 'rb').read
# => "\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00\x04i\xA3'e\f\x00\x00\x06\x18\x01\x04\xA5<\"x:\xA5\x95\xAATO\xA1&\nPT\xB7\xEF\x00\xD1\xC0\xB3\x00\x95\x00\x81\x80\x81@\x81\x00\x81\xC0qOV^\x00\xA0\xA0\xA0)P0 5\x00UP!\x00\x00\x1A\x00\x00\x00\xFF\x00E2LMTF003173\n\x00\x00\x00\xFD\x00\x18L\x18c\x1E\x04\x11\x01@\xF88\xF0<\x00\x00\x00\xFC\x00ASUS PB278\n \x01\xF2\x02\x03\"qO\x01\x02\x03\x11\x12\x13\x04\x14\x05\x1F\x90\x0E\x0F\x1D\x1E#\t\x17\a\x83\x01\x00\x00en\f\x00\x10\x00\x8C\n\xD0\x8A \xE0-\x10\x10>\x96\x00UP!\x00\x00\x18\x01\x1D\x00rQ\xD0\x1E n(U\x00UP!\x00\x00\x1E\x01\x1D\x00\xBCR\xD0\x1E \xB8(U@UP!\x00\x00\x1E\x8C\n\xD0\x90 @1 \f@U\x00UP!\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96"
puts File.open(filepath, 'rb').read
вывод:
������i�'e
�<"x:���TO�&
PT���������@���qOV^���)P0 5UP!��E2LMTF003173
�Lc@�8�<�ASUS PB278
�"qO�# �en
�
Њ �->�UP!rQ� n(UUP!�R� �(U@UP!�
А @1
@UUP!�
Я тоже это пробовал
puts File.open(filepath, "r:ISO-8859-1:UTF-8", &:read)
, который выводит:
ÿÿÿÿÿÿi£'e
¥<"x:¥ªTO¡&
PT·ïÑÀ³@ÀqOV^ )P0 5UP!�ÿE2LMTF003173
ýLc@ø8ð<üASUS PB278
ò"qOen
Ð à->UP!rQÐ n(UUP!¼RÐ ¸(U@UP!
Ð
rchardet тоже не помогает.
CharDet.detect File.open(filepath, 'rb').read
# => {"encoding"=>nil, "confidence"=>0.0}