Karakter tertentu dalam rangkaian karakter WE8ISO8859P1 memiliki representasi biner yang berbeda dari karakter yang sama di UTF8.
Yang saya sarankan adalah 2 kemungkinan cara
1) Coba gunakan penyedia data asli Oracle untuk .NET (ODP.NET). Mungkin ada bug/fitur di perpustakaan Microsoft System.Data.OracleClient bahwa adaptor ini tidak secara otomatis mendukung konversi WE8ISO8859P1 ke unicode. Berikut ini tautan ke ODP.NET
Saya berharap akan ada dukungan untuk pengkodean ini di ODP (tetapi untuk mengatakan benar saya tidak pernah memeriksa ini, ini hanya saran)
2) Solusi:di Dataset, Anda harus membuat bidang biner (dipetakan ke bidang tabel asli) dan bidang String (tidak dipetakan ke database). Saat Anda memuat data ke set data, ulangi untuk setiap baris dan lakukan konversi dari array biner ke string.
Kode harus seperti ini
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[]));
}