The lib that I linked is quite small and looks cross-platform so shouldn't be to hard to use it with inline, but crucial thing here is to have multi-platform solution that would be simple to use, on other hand targets with SDL2 subsystem could most likely use sdl_ttf, so only solution for Windows would be needed (don't know how HTML5 WebGL target is working atm).
It could even use some kind of pre-caching stage for creating glyphs bitmap - in menus all text is predefined during transition, same high scores, only dialog text in rpg like game would need more often available glyph updates.
But it would be just better to have such feature built-in GLB.
But for a moment I have something like this to force extended ASCII charset:
// simple UTF8 to ASCII conversion
// converts only Latin based characters, other are replaced with '?'
FUNCTION UTF8toLatin$: utf8$
LOCAL copy$ = utf8$
LOCAL i1%, i2% = LEN(utf8$), i3%, i4%, txt$ = "", txt_len% = LEN(utf8$)
LOCAL asc_tab%[], cjump%, fchar%, utfhex%
DIM asc_tab%[txt_len%]
// conver to array
FOR i1% = 0 TO txt_len% - 1
asc_tab%[i1%] = ASC(utf8$, i1%)
NEXT
i1% = 0
WHILE i1% < txt_len% - 1
i3% = asc_tab[i1%]
IF (i3% < 32)
cjump% = 1; fchar% = 63
ELSEIF (i3% > 127) // two chars
cjump% = 2
// simplified
i4% = asc_tab%[i1%+1]
utfhex% = i3% * 256 + i4%
IF (utfhex% >= 49792 AND utfhex% <= 50111); fchar% = 128 + (i3% - 194) * 64 + i4% - 128 // extended ASCII
ELSEIF (utfhex% >= 50304 AND utfhex% <= 50309); fchar% = IIF(MOD(utfhex%, 2) = 0, 65, 97) // c4 80 - to - c4 85 -> A/a
ELSEIF (utfhex% >= 50310 AND utfhex% <= 50317); fchar% = IIF(MOD(utfhex%, 2) = 0, 67, 99) // c4 86 - to - c4 8d -> C/c
ELSEIF (utfhex% >= 50318 AND utfhex% <= 50321); fchar% = IIF(MOD(utfhex%, 2) = 0, 68, 100) // c4 8e - to - c4 91 -> D/d
ELSEIF (utfhex% >= 50322 AND utfhex% <= 50331); fchar% = IIF(MOD(utfhex%, 2) = 0, 69, 101) // c4 92 - to - c4 9b -> E/e
ELSEIF (utfhex% >= 50332 AND utfhex% <= 50339); fchar% = IIF(MOD(utfhex%, 2) = 0, 71, 103) // c4 9c - to - c4 a3 -> G/g
ELSEIF (utfhex% >= 50340 AND utfhex% <= 50343); fchar% = IIF(MOD(utfhex%, 2) = 0, 72, 104) // c4 a4 - to - c4 a7 -> H/h
ELSEIF (utfhex% >= 50344 AND utfhex% <= 50354); fchar% = IIF(MOD(utfhex%, 2) = 0, 73, 105) // c4 a8 - to - c4 b1 -> I/i
ELSEIF (utfhex% >= 50354 AND utfhex% <= 50357); fchar% = IIF(MOD(utfhex%, 2) = 0, 74, 106) // c4 b2 - to - c4 b5 -> J/j
ELSEIF (utfhex% >= 50358 AND utfhex% <= 50360); fchar% = IIF(MOD(utfhex%, 2) = 0, 75, 107) // c4 b6 - to - c4 b8 -> K/k
ELSEIF (utfhex% >= 50361 AND utfhex% <= 50562); fchar% = IIF(MOD(utfhex%, 2) = 1, 76, 108) // c4 b9 - to - c5 82 -> L/l
ELSEIF (utfhex% >= 50563 AND utfhex% <= 50571); fchar% = IIF(MOD(utfhex%, 2) = 1, 78, 110) // c5 83 - to - c5 8b -> N/n
ELSEIF (utfhex% >= 50572 AND utfhex% <= 50579); fchar% = IIF(MOD(utfhex%, 2) = 0, 79, 111) // c5 8c - to - c5 93 -> O/o
ELSEIF (utfhex% >= 50580 AND utfhex% <= 50585); fchar% = IIF(MOD(utfhex%, 2) = 0, 82, 114) // c5 94 - to - c5 99 -> R/r
ELSEIF (utfhex% >= 50586 AND utfhex% <= 50593); fchar% = IIF(MOD(utfhex%, 2) = 0, 83, 115) // c5 9a - to - c5 a1 -> S/s
ELSEIF (utfhex% >= 50594 AND utfhex% <= 50599); fchar% = IIF(MOD(utfhex%, 2) = 0, 84, 116) // c5 a2 - to - c5 a7 -> T/t
ELSEIF (utfhex% >= 50600 AND utfhex% <= 50611); fchar% = IIF(MOD(utfhex%, 2) = 0, 85, 117) // c5 a8 - to - c5 b3 -> U/u
ELSEIF (utfhex% >= 50612 AND utfhex% <= 50613); fchar% = IIF(MOD(utfhex%, 2) = 0, 87, 119) // c5 b4 - to - c5 b5 -> W/w
ELSEIF (utfhex% >= 50614 AND utfhex% <= 50616); fchar% = IIF(MOD(utfhex%, 2) = 0, 89, 121) // c5 b6 - to - c5 b8 -> Y/y
ELSEIF (utfhex% >= 50617 AND utfhex% <= 50622); fchar% = IIF(MOD(utfhex%, 2) = 1, 90, 122) // c5 b9 - to - c5 be -> Z/z
ELSE; fchar% = 63
ENDIF
ELSEIF (i3% >= 224) // three chars
cjump% = 3; fchar% = 63
ELSEIF (i3% >= 240) // four chars
cjump% = 4; fchar% = 63
ELSE // normal char
cjump% = 1; fchar% = i3
ENDIF
INC i1%, cjump%
INC txt$, CHR$(fchar%)
WEND
copy$ = txt$
RETURN copy$
ENDFUNCTION
nothing special, unpolished, no error checking, but works for European languages, other like Asian will be converted to '?' chars, it's fast solution for online high scores, and as I got Steam Leaderboards working with fetching user avatars this will be sufficient for some time.