问题描述
我正在尝试将包含特殊字符(例如重音符号)的字符串列表添加到 RichEditText 框。准确地说,是人名列表。例如,有些是法语和西班牙语。不幸的是,这些特殊字符显示不正确。
我目前正在执行以下操作:
aRichEditTextBox.Lines = nameList.ToArray();
例如……我得到的不是“Añazgo”,而是“Añazgo”。
解决方法
你必须使用 RTF 格式的 Richtextbox 来识别那些特殊字符, 使用来自这里的这种方法 - RichTextBox and special chars c#
static string GetRtfUnicodeEscapedString(string s)
{
var sb = new StringBuilder();
foreach (var c in s)
{
if(c == '\\' || c == '{' || c == '}')
sb.Append(@"\" + c);
else if (c <= 0x7f)
sb.Append(c);
else
sb.Append("\\u" + Convert.ToUInt32(c) + "?");
}
return sb.ToString();
}
richtextbox1.Rtf = GetRtfUnicodeEscapedString(TextString);