Прежде чем я начну, вот проблема. Должно быть так:
Björn Nilsson, вместо отображения странных специальных символов все значения, содержащие символы Å, Ä и Ö, становятся такими.
Я заполняю свой DDL значениями из API в формате XML, в котором есть все значения, и мы также используем для этого Linq2Rest.
Вот как выглядит процесс
private readonly RestContext<ADConsultants> restContext;
public ConsultantContext(Uri uri, Format format)
{
restContext = new RestContext<ADConsultants>(GetRestClient(uri, format), GetSerializerFactory(format));
}
public enum Format
{
Pox,
Json
}
private static readonly IEnumerable<Type> knownTypes = new[] {typeof (ADConsultants)};
public static IRestClient GetRestClient(Uri uri, Format format)
{
switch (format)
{
case Format.Pox:
return new XmlRestClient(uri);
case Format.Json:
return new JsonRestClient(uri);
default:
throw new NotImplementedException();
}
}
private static ISerializerFactory GetSerializerFactory(Format format)
{
switch (format)
{
case Format.Pox:
return new XmlSerializerFactory(knownTypes);
case Format.Json:
return new JsonNetSerializerFactory();
default:
throw new NotImplementedException();
}
}
public IQueryable<ADConsultants> Consultant
{
get { return restContext.Query; }
}
}
Это мой класс JsonNetSerializerFactory:
public class JsonNetSerializerFactory :ISerializerFactory
{
public ISerializer<T> Create<T>()
{
return new JsonNetSerializer<T>();
}
public class JsonNetSerializer<T> : ISerializer<T>
{
public T Deserialize(string input)
{
return JsonConvert.DeserializeObject<T>(input);
}
public IList<T> DeserializeList(string input)
{
return JsonConvert.DeserializeObject<IList<T>>(input);
}
}
}
А это внутри моего контроллера:
var consultants = new ConsultantContext(
new Uri("http://adress:port/api/consultants"),
ConsultantContext.Format.Json)
.Consultant
.Where(x => x.Office == "Örebro")
.OrderBy(x => x.DisplayName)
.ToList()
.Select(x => new
{
name = x.DisplayName
});
Я провел тест, выполнив это:
name = "åäö"
и он работал нормально , ddl значения были "åäö"
Приветствуется любая помощь в том, как исправить, чтобы символы Å Ä Ö отлично работали как значения в моем DDL.
Заголовок HTTP имеет формат utf-8, он также присутствует в моем html-содержимом. Это должен быть XML, который нужно установить для определенной кодировки. Как я могу это сделать?
Заранее спасибо!