Теперь у меня есть xaml с немецким умляутом (s) ниже, когда я пытаюсь его разобрать, я получаю ошибку invalidchar.XamlReader и Umlauts
Когда я не использую контекст XamlParser, он работает. Но я должен использовать его для того, чтобы установить некоторые сопоставления типов
XAML:
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:test="clr-namespace:BR.UI.Tests.Items;assembly=BR.UI.ViewLocator.Tests"
mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300">
<UserControl.DataContext>
<test:SampleViewModel />
</UserControl.DataContext>
<Grid>
<Label>ö</Label>
</Grid>
</UserControl>
код, который разбирает это
var context = new ParserContext();
var result = System.Windows.Markup.XamlReader.Parse(xaml,context);
Я не могу найти ничего, чтобы установить кодировку hint (который будет .net String UTF-16), что я делаю неправильно?
Я также попытался ввести кодировку в XmlParserContext.
var xmlcontext = new XmlParserContext(null, null, null, XmlSpace.Preserve,
Encoding.Unicode);
var context = new ParserContext(xmlcontext);
Но это не помогло :-(
Что мне нужно сделать? Есть ли какие-кодирования XAML?
xaml - всего лишь xml; вы пытались добавить (поскольку вы говорите, что это UTF-16) ' xml version =" 1.0 "encoding =" UTF-16 "?>' в начале? конечно, я предполагаю, что это * на самом деле UTF-16 ... –
Когда вы сохраняете файл XAML, вы сохраняете с кодировкой 8, 16 или 32 бита? См. Http://stackoverflow.com/questions/10186484/i-cant-write-arabic-text-in-the-xaml-file – CalC
Это была просто строка .net, поэтому я предполагаю UTF-16. Btw, когда я использую XamlReader.Load (Stream ...) ist works. действительно странное поведение :-( –