我在MSSQL数据库中有一堆西里尔字母的文本,需要在C#中将其转换为西里尔字母。
所以...Ðàáîòàâããððàíèèè
应该成为
Работавгермании
有什么建议么?
我应该补充一点,我得到的最接近的是?aaioa a aaa?iaiee
这是我正在使用的代码:
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)));
最佳答案
// To find out source and target
const string source = "Ðàáîòà â ãåðìàíèè";
const string destination = "Работа в германии";
foreach (var sourceEncoding in Encoding.GetEncodings())
{
var bytes = sourceEncoding.GetEncoding().GetBytes(source);
foreach (var targetEncoding in Encoding.GetEncodings())
{
if (targetEncoding.GetEncoding().GetString(bytes) == destination)
{
Console.WriteLine("Source Encoding: {0} TargetEncoding: {1}",sourceEncoding.CodePage,targetEncoding.CodePage);
}
}
}
// Result1: Source Encoding: 1252 TargetEncoding: 1251
// Result2: Source Encoding: 28591 TargetEncoding: 1251
// Result3: Source Encoding: 28605 TargetEncoding: 1251
// The code for you to use
var decodedCyrillic = Encoding.GetEncoding(1251).GetString(Encoding.GetEncoding(1252).GetBytes(source));
// Result: Работа в германии
关于c# - C#中的西里尔文编码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12013659/