Kyrillische Codierung in C#
Ich habe eine Reihe von Kyrillisch-wie text in einer MSSQL-Datenbank und konvertieren es auf Kyrillisch in C#.
So... Ðàáîòà â ãåðìàíèè
werden sollte
Работа в германии
Irgendwelche Vorschläge?
Sollte ich hinzufügen, dass der nächste, den ich bekommen habe ist ?aaioa ein aa?iaiee
Hier ist der code, den ich verwende:
str = Encoding.UTF8.GetString(Encoding.GetEncoding("Windows-1251").GetBytes(drCurrent["myfield"].ToString()));
str = Encoding.GetEncoding(1251).GetString(Encoding.Convert(Encoding.UTF8, Encoding.GetEncoding(1251), Encoding.UTF8.GetBytes(str)));
- Was ist Datenbank-Kodierung? Ich denke, dass die DataSource wird diese Konvertierung für Sie...
- Erfahren Sie mehr über Unicode und Zeichensätze
- Vielleicht hilft Universal-Kyrillisch decoder
- Ich würde die zweite Frage von Srdjan: wie werden Ihre Daten in der Datenbank gespeichert? MSSQL hat zwei verschiedene string-Datentypen:
char
undnchar
, welches verwenden Sie?
Du musst angemeldet sein, um einen Kommentar abzugeben.
ADO.Net macht alle string-Typen von SQL Server-Anbieter wie C# strings, was bedeutet, dass Sie schon in Unicode konvertiert. Für nicht-unicode-source-Spalten (wie bei Ihnen offensichtlich ist), wie
char(n)
odervarchar(n)
, die ADO.Net provider für SQL Server verwendet die source - Sortierung Informationen zum bestimmen der Kodierung. Deshalb, wenn Ihre nicht-unicode-SQL-Server-Daten wird dargestellt .Net mit der falschen Codierung, muss es vorgelegt worden sei der Anbieter mit der falschen Sortierung. Wählen Sie eine geeignete Sortierung für die Daten und ADO.Net provider für SQL Server, übersetzen Sie es mit der entsprechenden Codierung. Zum Beispiel dokumentiert, wie in Sortierung und Code-Seite der Architektur, Kyrillisch Sortierungen führen Codepage 1251, was sehr wahrscheinlich ist, was Sie wollen. Die verlinkten Artikel enthalten alle Informationen, die Sie brauchen, um Ihr problem zu beheben.Ist das Ergebnis: