【发布时间】:2017-11-15 13:35:29
【问题描述】:
我有一个 WPF RichTextBox 可以完美地加载 RTF 内容(英文字符)。尝试在编辑器中设置日文字符(例如 ユーザに)时会出现问题。执行此操作时,结果如下:
这似乎与编码有关...... 所以我调整了我的代码以使用 Unicode 而不是 UTF8。无论如何,它不起作用。我将文本加载到 RTF 编辑器的代码如下所示:
private void Window_Loaded(object sender, RoutedEventArgs e) {
string text = "ユーザに";
TextRange textRange = new TextRange(MyRichTextBox.Document.ContentStart, MyRichTextBox.Document.ContentEnd);
textRange.Load(new MemoryStream(Encoding.Unicode.GetBytes(text)), DataFormats.Rtf);
}
最后,XAML 布局没有什么特别之处:
<Window x:Class="Tester.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Loaded="Window_Loaded"
Title="MainWindow" Height="350" Width="525">
<Grid>
<RichTextBox x:Name="MyRichTextBox" Margin="3"></RichTextBox>
</Grid>
</Window>
以防万一……我已经在这台电脑上安装了日语,它看起来不错。此外,如果我在编辑器加载后将 (ctrl+v) 日文字符粘贴到编辑器上,它似乎可以工作。
提前致谢!
【问题讨论】:
-
Encoding.Unicode.GetBytes(text) 默认为 UTF-8 是什么?
-
@johnny5 你是什么意思?
标签: c# wpf unicode richtextbox