Bepaalde tekens in de WE8ISO8859P1-tekenset hebben een andere binaire weergave dan hetzelfde teken in UTF8.
Wat ik voorstel zijn 2 mogelijke manieren
1) Probeer native Oracle-gegevensproviders voor .NET (ODP.NET) te gebruiken. Mogelijk is er een bug/functie in de Microsoft-bibliotheek System.Data.OracleClient dat deze adapter niet automatisch ondersteuning biedt voor het converteren van WE8ISO8859P1 naar unicode. Hier is een link naar ODP.NET
Ik hoop dat er ondersteuning zal zijn voor deze codering in ODP (maar om eerlijk te zijn heb ik dit nooit gecontroleerd, het is slechts een suggestie)
2) Tijdelijke oplossing:in Dataset moet u een binair veld maken (toegewezen aan het oorspronkelijke tabelveld) en een String-veld (niet toegewezen aan de database). Wanneer u gegevens naar de gegevensset laadt, herhaalt u voor elke rij en voert u de conversie uit van binaire array naar tekenreeks.
Code zou zoiets als dit moeten zijn
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[]));
}