Je reprends la question traitée ici, sur ce même site, et qui se pose de nouveau, sans être réapparue depuis des années.

La question principale qui reste est la suivante : comment identifier le caractère jugé invalide ?

En pratique, lorsque l'affichage de « céphalées » est réduit à « cal », il est facile d'identifier le « é », de même dans l'indication « Invalid UTF-8 byte sequence (�re) » j'ai pu identifier le « ï ».

Mais quand le message indique le code UTF-8 byte "A0, j'avoue n'avoir pas su trouver le caractère incriminé dans le document produit.

Autre observation, les caractères accentués en question (ï et é) passent très bien en dehors de l'environnement tabularx. J'ai donc remplacé tabularx par tabular : le problème subsiste, mais l'affichage de l'erreur précise la place du caractère concerné, à savoir un blanc devant le « : ». En effet, ce tableau au format .tex est exporté depuis l'application gnumeric. On trouve donc le même problème qu'avec les suites [libre|open|MS]office. Le « "AO » est donc probablement un tel blanc qui ne serait pas le caractère espace habituel.

Il existe certainement un tableau des caractères UTF8 avec leur code, et un moyen de remplacer tous ces « faux » caractères par le caractère souhaité (comme je l'ai fait pour remplacer tous les « é » par des « '{e} »). Mais où trouver ce tableau ? Et quel moyen utiliser pour ces remplacements ?

Posée 17 Jan '22, 12:19

joseph-tux's gravatar image

joseph-tux
46623061
Taux d'acceptation : 3%

Modifiée 17 Jan '22, 21:11

Pathe's gravatar image

Pathe ♦♦
7.5k42204251


Normalement A0 c'est un blanc insécable.

Lien permanent

Publiée 17 Jan '22, 13:01

Le%20TeXnicien%20de%20surface's gravatar image

Le TeXnicien de surface
2.0k814
Taux d'acceptation : 27%

Cette information est utile, mais ne résoud pas totalement le problème posé : où trouver cette information ? Et comment remplacer automatiquement ces caractères problématiques ?

(17 Jan '22, 13:57) Pathe ♦♦ Pathe's gravatar image
1

Chez moi, le caractère utf-8 NO-BREAK SPACE = #xA0 ne provoque pas d'erreur à la compilation. Voir le fichier source http://ix.io/3MAu et le log http://ix.io/3MAw. Pour le reconnaître et le modifier, il suffit d'utiliser les fonctions de recherche et de remplacement de son éditeur. Avec Emacs, on peut saisir n'importe quel caractère utf-8 en le désignant par son nom, ou son code hexa. Voir la documentation de son éditeur. J'ai noté que les trois caractères no-break space passent très bien avec xelatex, mais le caractère NO-BREAK SPACE est affiché comme un LATIN SMALL LETTER A WITH BREVE.

(17 Jan '22, 18:48) Jean-jacques Rétorré Jean-jacques%20R%C3%A9torr%C3%A9's gravatar image

La table des caractères UTF-8 est en ligne, ici: https://www.utf8-chartable.de/

(27 Jan '22, 14:47) joseph-tux joseph-tux's gravatar image
1

@joseph-tux Peut-être cette table est-elle un peu spécialisée (allemand-anglais), par rapport notamment à celle-ci, non ?

(27 Jan '22, 15:26) denis ♦♦ denis's gravatar image

Invalid UTF-8 byte sequence n'est pas la même chose qu'une lettre inconnue. Cela indique généralement que quelque chose est cassé. Par exemple :

\documentclass{article}
\begin{document}
\let\mymacro ä

\end{document}

donnera :

! LaTeX Error: Invalid UTF-8 byte "A4.

Le problème est que le ä se compose de plusieurs octets. Le \let prend le premier puis le reste est un caractère utf8 incomplet qui donne une erreur.

Donc normalement ça ne sert à rien de chercher dans des tableaux de utf8, il faut chercher l'endroit où le code est erroné.

Lien permanent

Publiée 27 Jan '22, 15:51

Ulrike%20Fischer's gravatar image

Ulrike Fischer
6193
Taux d'acceptation : 58%

Modifiée 27 Jan '22, 16:07

Pathe's gravatar image

Pathe ♦♦
7.5k42204251

  1. le document original peut être transcodé dans le jeu de caractères Unicode à l'aide d'outils tel que iconv.
  2. sinon le document courant a perdu son intégrité pour X ou Y raison : support obsolète, erreur de manipulation d'enregistrement, ...
  3. alors, lister les erreurs,
  4. pour chaque erreur, rechercher la correspondance entre caractère et point de code sur le site de l'Unicode https://unicode.org/charts/ (p. ex. le caractère espace insécable  NO-BREAK SPACE a le point de code U+00A0)
  5. à l'aide de ton éditeur hexadécimal favori ou la commande sed par exemple, effectuer un maximum de corrections.

Nb. : Les outils que je cite existent sous Linux.

Lien permanent

Publiée 15 Fév '22, 18:36

polymorphisme's gravatar image

polymorphisme
548924
Taux d'acceptation : 50%

Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.