TTML is verbose XML that many consumer players cannot read. SRT is accepted by practically every player, site and editor. TTML is at home in subtitles delivered to broadcasters and streaming services; SRT is the usual choice for subtitles that must work almost everywhere.
The text is read as UTF-8 or UTF-16, whichever the file is. An older file in another code page is read using the charset it declares, or as Windows-1252 if it declares none, so accented letters in an unlabelled legacy file can come out wrong. A file that is not text, such as the picture-based subtitles of a DVD, is refused instead of being converted to nonsense. Of the styling, only italic, bold, underline and the position on screen (top, middle or bottom, left, centre or right) travel between formats; fonts, colours, outlines and effects do not. Times in clock, offset, frame and tick form are all understood, and a region's position is kept as the cue's position. Positioned lines are written with {\an} codes, which many players honour; players that do not simply show them at the bottom.