Caracteres Unicode en lstlisting

Caracteres Unicode en lstlisting

Necesito incluir código en el apéndice de mi tesis. El código contiene comentarios y la compilación se interrumpe instantáneamente y regresa:

Unicode char �\lst@FillFixed@ (U+5A8)
(inputenc)                not set up for use with LaTeX.
l.160       if (lastArg < 0, lastArg = 360° 
                                             + lastArg);

Este es sólo uno de los muchos personajes que producen problemas. No puedo cambiar todo mi código solo porque no se compila. ¿Hay alguna forma de incluir código con caracteres Unicode arbitrarios? Gracias.

Editar:código de muestra completo, según lo solicitado.

\RequirePackage[l2tabu,orthodox]{nag}


\documentclass[headsepline,footsepline,footinclude=false,oneside,fontsize=11pt,paper=a4,listof=totoc,bibliography=totoc]{scrbook} % one-sided


\usepackage[toc,page]{appendix}
\usepackage{listings}
\usepackage[utf8]{inputenc}

\lstset{
    inputencoding=utf8,
  extendedchars=true,
  basicstyle=\footnotesize\ttfamily,
  showstringspaces=false,
  showspaces=false,
  numbers=left,
  numberstyle=\footnotesize,
  numbersep=9pt,
  tabsize=2,
  breaklines=true,
  showtabs=false,
  captionpos=b,
    literate={ö}{{\"o}}1 {ä}{{\"a}}1 {ü}{{\"u}}1 
}

\begin{document}

\begin{appendices}
\lstinputlisting{code/power_series.html}
\end{appendices}

\end{document}

Contenido relevante de power_series.html:

if (lastArg < 0, lastArg = 360° + lastArg);

Realmente no hay mucho que decir sobre este problema. Sólo quiero poder utilizar todos los caracteres Unicode dentro de una lista. Gracias.

Respuesta1

Defina el carácter Unicode de la forma adecuada.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{listingsutf8}

\protected\def\dg{\ensuremath{^\circ}}
\DeclareUnicodeCharacter{05A8}{\dg}

\lstset{
    inputencoding=utf8,
  extendedchars=true,
  basicstyle=\footnotesize\ttfamily,
  showstringspaces=false,
  showspaces=false,
  numbers=left,
  numberstyle=\footnotesize,
  numbersep=9pt,
  tabsize=2,
  breaklines=true,
  showtabs=false,
  captionpos=b,
  literate={ö}{{\"o}}1 {ä}{{\"a}}1 {ü}{{\"u}}1 {°}{\dg}1
}

\begin{document}

\lstinputlisting{\jobname.html}

\end{document}

El \jobname.htmlarchivo contiene

if (lastArg < 0, lastArg = 360° + lastArg);

Aquí está el resultado.

ingrese la descripción de la imagen aquí

información relacionada