If you're getting literally that error—with no visible character after the \u8:
—then what's probably happening is that you have some sort of invisible or space unicode character in your document. For instance, on my Mac, if I hit option-space, I get a non-breaking space, which gives an error that looks like that. You also might have some other character; a zero-width breakable space, for instance. If you copied and pasted your error, looking at the source of this page indicates that you might have a soft hyphen in your source (Unicode character 0xAD
, representing a valid hyphenation point but not typeset unless there's a word-break). Thus, find the line it's occurring on, and comb through that line until you find it. Retype it if necessary, but a good editor should let you find it. Once you delete it, then your first three methods should work.
When I use your header (commenting out \frechbsetup
, which doesn't seem to exist, and using \documentclass{article}
), $^{\circ}$
renders as a largeish circle in the superscript position, $\deg$
renders as the upright text "deg", and \textdegree
renders as a smaller circle. A literal °
doesn't work by default. To make it work, you can use \DeclareUnicodeCharacter{B0}{\textdegree}
. This tells inputenc
to treat the Unicode character 0xB0
, the °
, as though it were \textdegree
, which is what you want. You could also use this to see if your problem is the soft hyphen; insert \DeclareUnicodeCharacter{AD}{\Huge [ICI]}
to get the text [ICI]
rendered into your document in huge letters wherever there's a soft hyphen. (Of course, if there's some other invisible character, you'll just get the error.)
Also, although I've never used it, you could try using XeLaTeX instead of PDFLaTeX; it has full UTF-8 support out of the box.
xelatex
should solve the issue. Just make sure to remove the\usepackage[utf8]{inputenc}
line.\usepackage[utf8]{inputenc}
in any engine. It’s been the default since 2018.\usepackage{fontspec}
instead offontenc
andlmodern
.