2011-09-21 3 views
3

J'ai lu la chaîne à partir du fichier avec l'encodage "UTF-8". Et j'ai besoin de le faire correspondre à une expression. Le premier caractère du fichier est #, mais dans la chaîne, le premier est '' (symbole vide). Je l'ai traduit en octets avec le jeu de caractères "UTF-8", ici c'est [-17, -69, -65]. Est-ce que quelqu'un sait ce que c'est et comment le résoudre avec regexprs?Caractères inconnus

+1

Vous pouvez coller [hexdump] (http://en.wikipedia.org/wiki/Hex_dump) du début du fichier? C'est-à-dire que les données brutes avant Java le touchent même. –

Répondre

6

Certains éditeurs (comme le bloc-notes) ajoute une signature BOM (byte order mask) lors de l'enregistrement du texte UTF-8. Vous devriez vérifier 0xEF, 0xBB, 0xBF octets avant la chaîne de lecture d'un tel fichier et les ignorer s'ils existent. Une autre façon est de ne pas utiliser le bloc-notes pour éditer des textes UTF-8, obtenir un autre programme comme Notepad ++, Kate ou autre avec lequel vous pouvez contrôler l'ajout de BOM.

Questions connexes