Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Problemy z używaniem/wyświetlaniem znaków specjalnych z bazy danych Oracle w aplikacji .Net

Niektóre znaki w zestawie znaków WE8ISO8859P1 mają inną reprezentację binarną niż ten sam znak w UTF8.

Proponuję 2 możliwe sposoby

1) Spróbuj użyć rodzimych dostawców danych Oracle dla platformy .NET (ODP.NET). Być może istnieje błąd/funkcja w bibliotece Microsoft System.Data.OracleClient, że ten adapter nie obsługuje automatycznie konwersji WE8ISO8859P1 na Unicode. Oto link do ODP.NET

Mam nadzieję, że będzie wsparcie dla tego kodowania w ODP (ale prawdę mówiąc nigdy tego nie sprawdzałem, to tylko sugestia)

2) Obejście:w zestawie danych należy utworzyć pole binarne (zmapowane do oryginalnego pola tabeli) i pole typu String (niezmapowane do bazy danych). Kiedy ładujesz dane do zbioru danych, wykonaj iterację dla każdego wiersza i konwersji perfrom z tablicy binarnej na łańcuch.

Kod powinien wyglądać mniej więcej tak

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[]));
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak znaleźć błędy kompilacji PLSQL?

  2. jak wysyłać zapytania do bazy danych Oracle na podstawie danych wprowadzonych przez użytkownika za pomocą asp.net c#

  3. Wyzwalacz SQL przy usuwaniu tabeli mutacji

  4. Nie można połączyć się z Oracle za pomocą PDO

  5. Podłączanie oprogramowania IRI do Oracle