이진 파일을 만들고 있습니다. 이 바이너리 파일 내에서 UTF-16 XML (리틀 엔디안) 파일 인 것만 추출 할 수 있습니다. UTF-16 (리틀 엔디안) XML에서`xmllint` 사용하기
내가 데이터를 추출하고, (데비안/제시의 AMD64를 실행) 콘솔에서 덤프하려고하면
, 여기에 내가 무엇을 얻을 수 있습니다 :$ xmllint --format D5905822-DFF9-7944-9CFE-258264B8162E.UNK
D5905822-DFF9-7944-9CFE-258264B8162E.UNK:1: parser error : Char 0x0 out of allowed range
<
^
D5905822-DFF9-7944-9CFE-258264B8162E.UNK:1: parser error : StartTag: invalid element name
<
^
나는 xmllint가의 사람 페이지에서 아무것도 찾을 수 없습니다
나를 돕기 위해, 그물로부터 UTF-16 리틀 엔디안 파일 (here)을 다운로드했습니다. 나는 첫 번째 라인 (인코딩) 유지하기 위해, 실제 XML 데이터를 제거 :
$ cat header
��<?xml version="1.0" encoding="UTF-16"?>
$ hexdump header
0000000 feff 003c 003f 0078 006d 006c 0020 0076
0000010 0065 0072 0073 0069 006f 006e 003d 0022
0000020 0031 002e 0030 0022 0020 0065 006e 0063
0000030 006f 0064 0069 006e 0067 003d 0022 0055
0000040 0054 0046 002d 0031 0036 0022 003f 003e
0000050 000d 000a
0000054
을 그리고 지금은 사용할 수 있습니다 제대로 xmlling :
$ cat header D5905822-DFF9-7944-9CFE-258264B8162E.UNK > bla.xml
$ xmllint --format bla.xml
��<?xml version="1.0" encoding="UTF-16"?>
<InteractiveMeasurement>
<InteractiveMeasurementRecord ElementUniqueName="f0c9b1c6-9a5c-40cd-8303-e507bb539cdc" IsValid="true">
[...]
다른 쉬운 솔루션이 아닌가요? UTF-16 리틀 엔디안 XML 파일을 읽는 것이 왜 이렇게 복잡한가요?
'iconv -f utf-16 -t utf-8
Tomalak