Utilia

Hex File Viewer

Open any file in a free in-browser hex viewer: offsets, hex and ASCII, byte or text search, integer and float decoding, file type detection.

The file is read in your browser, piece by piece, and is never uploaded. Even multi-gigabyte files open instantly.

Hexadecimal with 0x or h (0x1F0, 1F0h), decimal (496), or relative (+16, -0x10).

Open a file to see its bytes.

Click a byte to select it, drag or Shift+click to select a range. Keyboard: arrows, Page Up/Down, Home/End, Ctrl+Home/End; add Shift to extend.

No selection

TypeLittle-endianBig-endian
Selection as UTF-8 text
—

How to use the hex viewer

  1. Drop a file on the drop zone or click it to choose one. Any type and any size works: the file is read in small slices as you scroll, so a 4 GB disk image opens as fast as a 4 KB icon.
  2. Read the File, Size and Detected type boxes. The type comes from the file’s first bytes (its “magic number”), not from its extension.
  3. Scroll the view with the mouse wheel, drag the Position in the file slider, or click the view and use the arrow keys, Page Up/Down, Home/End and Ctrl+Home/End.
  4. Click a byte to select it. Drag, or Shift+click, to select a range. The panel below shows the selection’s start, end and length, the value at the start of the selection decoded as numbers, and the selection as UTF-8 text.
  5. Type an offset in Go to offset and click Go: 0x1F0 or 1F0h is hexadecimal, 496 is decimal, +16 and -0x10 move relative to the current byte.
  6. To search, type in Search, choose Text (UTF-8) or Hex bytes, then click Find next or Find previous. The search wraps around at the end of the file, and the match is selected.

Reading the three columns

Each row shows 16 bytes. The left column is the offset of the first byte of the row, in hexadecimal. The middle columns are the bytes themselves, two hex digits each (00 to FF), with a wider gap after the eighth byte. The right column shows the same bytes as ASCII: printable characters from space (0x20) to tilde (0x7E) are shown as is, every other byte as a dot. This is the layout of classic tools such as xxd and hexdump -C.

Number interpretation

The table decodes the bytes at the start of the selection as the common fixed-size types: signed and unsigned 8, 16, 32 and 64-bit integers, and IEEE 754 single (float32) and double (float64) precision floats. Each type is shown in Little-endian (least significant byte first, used by x86 and ARM processors and most file formats from Windows) and Big-endian (most significant byte first, used by network protocols, Java class files, PNG and JPEG). If the file is too short for a type, the cell shows a dash. 64-bit integers are computed exactly, beyond the 2^53 limit of JavaScript numbers.

File signatures

Most binary formats start with a fixed signature: PNG with 89 50 4E 47 0D 0A 1A 0A, PDF with %PDF-, ZIP (and therefore DOCX, XLSX, JAR, EPUB and APK) with PK 03 04, ELF executables with 7F 45 4C 46, Windows executables with MZ. The tool checks about sixty signatures for images, audio, video, archives, fonts, executables, databases and documents. When none matches, it says whether the start of the file looks like UTF-8 text.

Frequently asked questions

Is my file uploaded?

No. The browser reads the file locally with the File API, only the slices you are looking at are loaded into memory, and nothing leaves your computer.

Can I edit the bytes?

No. This is a viewer: it never modifies the file. Use it to inspect headers, find strings, check a signature or understand a binary format.

Why does a search find text I cannot see in the ASCII column?

Text search encodes your query as UTF-8. Accented letters take two bytes in UTF-8, and they appear as dots in the ASCII column because they are outside the printable ASCII range. The Selection as UTF-8 text box shows them correctly.

What does "Ignore case" do?

It makes a text search match A–Z and a–z interchangeably. It only applies to ASCII letters; hex searches always match exact byte values.

How large can the file be?

There is no fixed limit. Viewing and scrolling read only the visible rows, and a search reads the file in 4 MB chunks with a progress indicator that you can cancel.