# Sample text files for testing encodings and line endings, free and CC0

17 text test files from 1 KB to 10.5 MB. Direct URLs, a SHA-256 for each and CC0, so curl and CI can fetch them with no signup and no keys.

The page: <https://loremfile.dev/txt>.

Plain text is rarely as plain as it looks. These files cover exact sizes, both common line
endings, and the character encodings a parser is likely to meet.

Sizes: `txt/lorem-1kb.txt`, `txt/lorem-100kb.txt`, `txt/lorem-1mb.txt` and
`txt/lorem-10mb.txt` are exact decimal sizes of Lorem Ipsum, and `txt/lorem-1mib.txt` and
`txt/lorem-10mib.txt` exact binary ones. `txt/very-long-line-1mb.txt` is a single line of
1,000,000 bytes, for tools that read a whole line into memory.

Line endings: `txt/lf.txt` and `txt/crlf.txt` are 100 lines each, with Unix and Windows
endings.

Encodings: `txt/utf8-bom.txt` and `txt/utf16le-bom.txt` start with byte-order marks, while
`txt/latin1.txt`, `txt/windows-1252.txt` and `txt/shift-jis.txt` are not UTF-8 at all.
`txt/utf8-multilingual.txt` has a line per script plus emoji, combining marks, bidi controls
and unusual spaces, and `txt/emoji-only.txt` contains nothing but emoji sequences.

`txt/utf16be-no-bom.txt` encodes ASCII Lorem Ipsum as UTF-16 big-endian without a BOM.
Unlike `txt/utf16le-bom.txt`, it gives an encoding detector no byte-order marker. The
declared charset is `utf-16be`; the validator independently measures the byte order from
the NUL lane in these ASCII code units and rejects little-endian bytes or an added BOM.

Related formats: [Markdown](https://loremfile.dev/md), [log files](https://loremfile.dev/log), [INI](https://loremfile.dev/ini) and [binary files](https://loremfile.dev/bin).

## Files

| Path | Size | MIME | Properties |
|---|---|---|---|
| [`txt/crlf.txt`](https://loremfile.dev/txt/crlf.txt) | 9 KB (8,981 bytes) | `text/plain; charset=utf-8` | utf-8, CRLF, 100 lines |
| [`txt/emoji-only.txt`](https://loremfile.dev/txt/emoji-only.txt) | 1.5 KB (1,488 bytes) | `text/plain; charset=utf-8` | utf-8, LF, 1 line |
| [`txt/latin1.txt`](https://loremfile.dev/txt/latin1.txt) | 1.2 KB (1,151 bytes) | `text/plain; charset=iso-8859-1` | iso-8859-1, LF, 5 lines |
| [`txt/lf.txt`](https://loremfile.dev/txt/lf.txt) | 9 KB (9,039 bytes) | `text/plain; charset=utf-8` | utf-8, LF, 100 lines |
| [`txt/lorem-100kb.txt`](https://loremfile.dev/txt/lorem-100kb.txt) | 100 KB (100,000 bytes) | `text/plain; charset=utf-8` | utf-8, LF, 439 lines |
| [`txt/lorem-10mb.txt`](https://loremfile.dev/txt/lorem-10mb.txt) | 10 MB (10,000,000 bytes) | `text/plain; charset=utf-8` | utf-8, LF, 44,503 lines |
| [`txt/lorem-10mib.txt`](https://loremfile.dev/txt/lorem-10mib.txt) | 10.5 MB (10,485,760 bytes) | `text/plain; charset=utf-8` | utf-8, LF, 46,823 lines |
| [`txt/lorem-1kb.txt`](https://loremfile.dev/txt/lorem-1kb.txt) | 1 KB (1,000 bytes) | `text/plain; charset=utf-8` | utf-8, LF, 3 lines |
| [`txt/lorem-1mb.txt`](https://loremfile.dev/txt/lorem-1mb.txt) | 1 MB (1,000,000 bytes) | `text/plain; charset=utf-8` | utf-8, LF, 4,431 lines |
| [`txt/lorem-1mib.txt`](https://loremfile.dev/txt/lorem-1mib.txt) | 1 MB (1,048,576 bytes) | `text/plain; charset=utf-8` | utf-8, LF, 4,657 lines |
| [`txt/shift-jis.txt`](https://loremfile.dev/txt/shift-jis.txt) | 1.7 KB (1,709 bytes) | `text/plain; charset=shift_jis` | shift_jis, LF, 5 lines |
| [`txt/utf16be-no-bom.txt`](https://loremfile.dev/txt/utf16be-no-bom.txt) | 3.6 KB (3,614 bytes) | `text/plain; charset=utf-16be` | utf-16be, LF, 5 lines |
| [`txt/utf16le-bom.txt`](https://loremfile.dev/txt/utf16le-bom.txt) | 2.8 KB (2,788 bytes) | `text/plain; charset=utf-16` | utf-16, LF, 6 lines |
| [`txt/utf8-bom.txt`](https://loremfile.dev/txt/utf8-bom.txt) | 1.4 KB (1,437 bytes) | `text/plain; charset=utf-8` | utf-8, LF, 5 lines |
| [`txt/utf8-multilingual.txt`](https://loremfile.dev/txt/utf8-multilingual.txt) | 1.3 KB (1,308 bytes) | `text/plain; charset=utf-8` | utf-8, LF, 14 lines |
| [`txt/very-long-line-1mb.txt`](https://loremfile.dev/txt/very-long-line-1mb.txt) | 1 MB (1,000,000 bytes) | `text/plain; charset=utf-8` | utf-8, LF, 1 line |
| [`txt/windows-1252.txt`](https://loremfile.dev/txt/windows-1252.txt) | 1.6 KB (1,606 bytes) | `text/plain; charset=windows-1252` | windows-1252, LF, 5 lines |

The same list as JSON: <https://loremfile.dev/txt/index.json>.
