# Unconvertible UTF-8 character



## byte (18. Jan 2006)

Hi,

folgendes Problem: Ich versuche eine besondere HTML-Datei mit JDOM einzulesen, aber der Parser (sowohl JAXP als auch Xerces getestet) wirft ne Fehlermeldung:


```
Unconvertible UTF-8 character beginning with 0x96
```

Die HTML-Dateien sehen in etwa wie folgt aus:


```
<?xml version="1.0"?><html xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation='document.xsd'><head><title></title><style type="text/css">
td    { vertical-align:top; }
</style></head><body><table ...>...</table></body></html>
```

Ich habe keinen Einfluss auf diese Dateien, muss aber bestimmte Sachen ändern (Image Tags im Body entfernen bzw. ändern). Gibt es eine Lösung für das Problem, so dass ich die Dateien eingelesen bekomme mit JDOM? Ansonsten müsste ich die Änderungen manuell machen, indem ich das Ganze mit nem Reader einlese, doch das wäre ziemlich umständlich, weil diese HTML-Dateien keine vernünftige Formatierung haben (Linebreaks fehlen).

Danke im Voraus...


----------



## Bleiglanz (18. Jan 2006)

du musst das CharacterEncoding rausfinden?!

wie liest du denn ein?


----------



## byte (18. Jan 2006)

Wie findet man das Encoding denn raus? Wenn ich die Datei mit Firefox öffne, steht die Codierung automatisch auf Windows-1252. Ich muss dann wohl dem Builder noch mitteilen, welche Codierung verwendet wird!?

Einlesen tue ich folgendermaßen:


```
SAXBuilder builder =
  new SAXBuilder("org.apache.xerces.parsers.SAXParser", false);
 Document doc = builder.build(xml);
```


----------



## Bleiglanz (18. Jan 2006)

verwende



> public Document build(java.io.Reader characterStream)
> throws JDOMException,
> java.io.IOException
> 
> This builds a document from the supplied Reader. It's the programmer's responsibility to make sure the reader matches the encoding of the file. It's often easier and safer to use an InputStream rather than a Reader, and to let the parser auto-detect the encoding from the XML declaration.


funktioniert ja bei dir offensichtlich nicht

Frage: was ist das "xml" bei dir im Argument von build??


----------



## byte (18. Jan 2006)

"xml" ist die HTML-Datei als File. Das hat auch sonst bei anderen Projekten immer prima funktioniert.


----------



## Bleiglanz (18. Jan 2006)

diesmal eben nicht

musst dir schon einen Reader machen, dem du das richtige Encoding manuell mitteilst...


----------



## byte (18. Jan 2006)

Danke, das werde ich mal probieren. Habe immer geguckt, ob man dem SAXBuilder die Kodierung mitteilen kann, aber nix entsprechendes gefunden.

Edit: OK, hat geklappt. Leider hat sich rausgestellt, dass die Dateien nicht Well-Formed sind. Also kann ich den JDOM-Ansatz vergessen.


----------

