SVG file signature
Magic number at the start of the file · <?xml
SVG is XML text, so a file usually starts with the XML prolog <?xml, or sometimes the root element <svg directly. It has no binary magic number; the opening angle-bracket text is the practical signal.
What this magic number means
A magic number is a short, fixed run of bytes at a known position that tells a program what a file really is, no matter what the filename says. If a file starts with the bytes 3C 3F 78 6D 6C (the text <?xml), it is a SVG file.
Signature variants
SVG appears with more than one byte pattern. These all identify the same family:
| Hex signature | Offset | Note |
|---|---|---|
| 3C 3F 78 6D 6C | 0 | with an XML prolog |
| 3C 73 76 67 | 0 | starting directly with <svg |
Formats that use the 3C 3F 78 6D signature
These file types in our database carry this signature:
How to check a file's signature
You can read the first bytes of any file yourself. The magic bytes are shown in hex, the same way this page lists them.
Linux & macOS
- xxd -l 16 example.svg
- hexdump -C -n 16 example.svg
- file example.svg
Windows (PowerShell)
- Format-Hex -Path example.svg -Count 16
Python
- open("example.svg","rb").read(5).hex()
In your browser
- Drop the file into the WhatFileType identifier, which reads the signature without uploading it.
Frequently asked questions
What is the SVG file signature?
SVG files start with the hex bytes 3C 3F 78 6D 6C (<?xml in ASCII). This magic number identifies the format regardless of the file's name or extension.
How do I check a file's magic number?
Open the file in a hex editor, or run a command such as xxd -l 16 example.svg on Linux or macOS, or Format-Hex -Path example.svg -Count 16 in Windows PowerShell, and read the first bytes.
Can a file fake the SVG signature?
Renaming a file does not change its bytes, so the extension can lie but the signature usually cannot. A genuine SVG file has these exact bytes; a file with the wrong bytes is not really SVG, whatever its name says.