Zanim zacznę, jest problem. Powinno być tak:Znaki A Ę nie Ö wyświetla się w moim DDL, jak mogę powiedzieć reszty klienta, aby użyć określonego zestawu znaków?
Björn Nilsson, zamiast tego wyświetla dziwne znaki specjalne, wszystkie wartości, które mają znaki Å, Ę i Ö, stają się takie.
wypełnić mój DDL z wartościami z API w formacie XML, który ma wszystkie wartości, a my również używając Linq2Rest za to.
To jak proces wygląda
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; }
}
}
To moja klasa 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);
}
}
}
I to w moim kontrolera:
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
});
Zrobiłem test w ten sposób:
name = "åäö"
i to działało dobrze, wartości DDL było „AAO”
Każda pomoc jest mile widziana, jak naprawić więc znaki A A Ö działa dobrze jako wartości w moim DDL .
Nagłówek HTTP to utf-8, moje treści HTML również. Musi to być plik XML, który musi być ustawiony na konkretny zestaw znaków. Jak mogę to zrobić?
Z góry dziękuję!
Jakie jest kodowanie treści Twojego wyjścia? Wygląda na to, że twoja warstwa danych generuje UTF-8, ale warstwa prezentacji deklaruje ją jako inne kodowanie. –
Nie rozumiem twojego pytania, ale używam w całej treści – Obsivus