Skip to content
Novus Examples
srt342 B

SRT — Windows-1252 (Legacy Code Page)

The same cues in Windows-1252, the legacy code page behind most real-world caption mojibake. Pure ASCII until the curly quotes and em dash, which encode as single bytes 0x93, 0x94 and 0x97 — none of which is valid UTF-8. A tool that assumes UTF-8 either raises or silently substitutes replacement characters exactly where the punctuation was. There is no BOM and no in-band signal, so correct handling requires either charset detection or being told.

Preview — first 21 linessrt
1
00:00:01,000 --> 00:00:03,000
Novus Examples � timed-text fixture

2
00:00:03,500 --> 00:00:06,000
Second cue, two lines:
this is the second line

3
00:00:06,500 --> 00:00:09,000
Third cue with <i>italic</i> markup

4
00:00:09,500 --> 00:00:12,000
Fourth cue � em dash, curly �quotes�, ellipsis�

5
00:00:12,500 --> 00:00:15,000
Final cue.

Specifications

Encoding
Windows-1252 (cp1252)
Byte Order Mark
no
Line Endings
LF
Cues
5
Utf8 Valid
no — bytes 0x93/0x94/0x97 are invalid UTF-8

What is a .srt file?

SRT (SubRip) is a plain-text subtitle format listing numbered cues, each with a start and end timecode and one or more lines of text. It is simple, human-readable, and extremely widely supported by players. It carries no styling metadata beyond basic inline tags.

How to use this file

Use an example SRT to test subtitle parsing, timecode handling, and converters that translate between SRT and WebVTT or other caption formats.

How to use this file for testing

“SRT — Windows-1252 (Legacy Code Page)” is a deterministic Novus Examples fixture for Caption encoding, Subtitle parsing, Video QA. The same cue list written with a UTF-8 BOM, without one, in UTF-16, with CRLF and with bare LF, plus non-Latin scripts and right-to-left text — for finding the parser that assumed captions are always LF-terminated ASCII.

Documented properties for this file: 5 cues · Windows-1252 (cp1252) · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Media fixtures are short and synthetic by design. Prefer waveform or transcript ground truth in the same group when measuring ASR, trim, upscale, or sync tools; do not assume broadcast-quality masters.

Code examples

<video controls src="clip.mp4">
  <track kind="captions" srclang="en" label="English" src="cues-cp1252.srt" default>
</video>

Generated by generation/video_timedtext.py. Free for any use, no attribution required — license.