Uppercase thornRight half block
ASCII 222 is Þ on Windows and ▐ in old DOS.
Þ (Capital Thorn) is byte 222 in Windows-1252, Unicode U+00DE. Icelandic still writes it for the th sound, as in Þingvellir and the name Þór, which English renders as Thor. Old English used it too, and it explains the ye in names like Ye Olde Tea Shoppe: early printers without a thorn in their type set a y in its place, and ye was read as the. UTF-8 stores Þ as C3 9E, which misreads as Þ. The HTML entity is Þ.
▐ (Right Half Block) is byte 222 in code page 437, the original IBM PC character set, and maps to Unicode U+2590. It fills the right half of a cell, the mirror of ▌ at 221. Unicode is lopsided here: it has left blocks in every eighth from ▏ to ▉, but on the right only this half and the thin ▕ (U+2595). So a bar that grows from right to left can't be drawn in smooth eighths with right blocks alone. One workaround is a left block with its foreground and background colors swapped. There's no named HTML entity, so use ▐. Code page 850 put Ì on this byte. In UTF-8 it's E2 96 90.
#include <stdio.h>int main(void) {/* On Windows (code page 1252) byte 222 is Þ.Modern terminals expect UTF-8, so print the code point, not the byte. */printf("\u00DE\n"); /* UTF-8: C3 9E */unsigned char b = 222; /* the raw Windows-1252 byte */printf("%d 0x%02X\n", b, b); /* 222 0xDE */return 0;}
#include <stdio.h>int main(void) {/* Byte 222 is ▐ only on a console using code page 437(chcp 437 on Windows, or DOSBox). On a UTF-8 terminal thelone byte 0xDE is invalid and prints as garbage, often �. */putchar(222);/* char is signed on x86, so a plain char holding 0xDE is -34.Use unsigned char when you compare or index by byte value. */char c = (char)222;unsigned char u = 222;printf("\n%d %d\n", c, u); /* -34 222 *//* Portable: print the Unicode character as UTF-8 instead. */printf("\u2590\n"); /* E2 96 90 */return 0;}
The subtitle file is in Windows-1254, the Turkish code page, and the player is reading it as Windows-1252, which has Þ where Turkish has Ş and ý where it has ı. Set the player's subtitle encoding to Turkish, or convert the .srt to UTF-8 once, which players generally read correctly without any setting.
The usual slug trick, NFKD normalization and then dropping everything outside ASCII, only works for letters that split into a base letter plus an accent. Þ has no such decomposition, so it gets removed whole. Map it before normalizing, Þ to Th and þ to th, or use a transliteration library such as unidecode, which already turns Þingvellir into Thingvellir.
Near the end of the alphabet, after Y and Ý and before Æ and Ö. Sorting by code point gets this wrong, because Þ has a higher value than both Æ and Ö, so Þór lands after Ögmundur. Use Icelandic collation instead, for example `names.sort(new Intl.Collator('is').compare)`, which also puts Ð right after D.