我的应用程序使用JSON字符串将文本发送到API,然后将其放入实时聊天中。该接口使用WinForms编写,并使用常规textBoxes并从WPF spellBoxes导入。发生的主要问题是当用户复制/粘贴MS Word格式的表时,API不接受JSON字符串。我的猜测是Word表中的一些隐藏字符或标签会破坏JSON字符串。我的问题是:如何从字符串中删除所有格式?
以下是我在发送API之前清理内容的当前代码:private string theCleaner(string text)
{
if (text.Equals(String.Empty) || text.Equals(null))
{
return "";
}
else
{
return text.Replace('\u2018', '\'')
.Replace('\u2019', '\'')
.Replace('\u201c', '"')
.Replace('\u201d', '"')
.Replace("\"", "\\\"")
.Replace('\u0009', ' ')
.TrimEnd()
.TrimStart()
.Normalize();
}
}
private string theScrubber(string toughGreese)
{
if (toughGreese.Equals(String.Empty) || toughGreese.Equals(null))
{
return "";
}
else
{
return Regex.Replace(toughGreese, "[^\\\"\\s\\r\\n%#&\\w\\.@-]", "");
}
}
答案 0 :(得分:1)
这是通过清除所有MS Word格式字符串结尾来解决的。
因此,添加这三个语句解决了这个问题:
.Replace("\r\n", "<br>").Replace("\r","<br>").Replace("\n","<br>");
额外的\ r和\ n可能是不必要的,但你永远不能告诉MS决定改变他们的格式将来会破坏你的代码。