sql >> Database teknologi >  >> RDS >> Oracle

Problemer med at bruge/vise specialtegn fra Oracle db i .Net app

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


  1. Minus-operator giver mig fejl i mysql

  2. Bibliotek ikke indlæst:libmysqlclient.16.dylib fejl ved forsøg på at køre 'rails server' på OS X 10.6 med mysql2 gem

  3. hvordan man parser json ved hjælp af json_populate_recordset i postgres

  4. Rails ActiveRecord sorterer efter antal tilknyttede bordforeninger