Visse tegn i WE8ISO8859P1-tegnsættet har en anden binær repræsentation end det samme tegn i UTF8.
Det, jeg foreslår, er 2 mulige måder
1) Prøv at bruge Oracles oprindelige dataudbydere til .NET (ODP.NET). Måske er der en fejl/funktion i Microsofts bibliotek System.Data.OracleClient, som denne adapter ikke automatisk understøtter konvertering af WE8ISO8859P1 til unicode. Her er et link til ODP.NET
Jeg håber, at der vil være understøttelse af denne kodning i ODP (men for at sige sandt, har jeg aldrig tjekket dette, det er kun et forslag)
2) Løsning:I Datasæt skal du oprette et binært felt (tilknyttet det oprindelige tabelfelt) og et String-felt (ikke tilknyttet databasen). Når du indlæser data til datasættet, skal du gentage for hver række og udføre konvertering fra binært array til streng.
Koden skal være sådan her
Encoding e = Encoding.GetEncoding("iso-8859-1");
foreach(DataRow row in dataset.Tables["MyTable"])
{
if (!row.IsNull("MyByteArrayField"))
row["MyStringField"] = e.GetString((row["MyByteArrayField"] as byte[]));
}