C# 设计翻译API-如何处理空格

C# 设计翻译API-如何处理空格,c#,api,formatting,translation,C#,Api,Formatting,Translation,我的应用程序使用外部翻译API(没有使用其他翻译引擎的选项)。当我调用翻译引擎时,我看到以下意外行为 输入 你好,世界 预期产量 Hola todos 实际产量 Hola todos. API修剪空间是否合适?我觉得这不对。 注意:有文档记录用标记对替换非html标记(数字递增以保持标记对唯一) 更新:最终结果是我不得不绕过这个问题,在调用翻译API之前对空格进行编码。我不喜欢它,但我无法说服API所有者将其更改为GIGO(垃圾输入,垃圾输出)。据我所知,HTML中的空白并不特别重要,多个空格被

我的应用程序使用外部翻译API(没有使用其他翻译引擎的选项)。当我调用翻译引擎时,我看到以下意外行为

输入
你好,世界

预期产量
Hola todos

实际产量
Hola todos.

API修剪空间是否合适?我觉得这不对。

注意:有文档记录用
标记对替换非html标记(数字递增以保持标记对唯一)


更新:最终结果是我不得不绕过这个问题,在调用翻译API之前对空格进行编码。我不喜欢它,但我无法说服API所有者将其更改为GIGO(垃圾输入,垃圾输出)。

据我所知,HTML中的空白并不特别重要,多个空格被压缩为单个空格,新行被忽略,因此,字符串中的前导空格和尾随空格被删除也就不足为奇了。从浏览器的角度来看,它们是等价的


因此问题就变成了,API中是否有保留空格的选项,或者将传入的文本视为“纯文本”而不是html?

一般来说,空格不被视为单词的一部分,因此API这样做并不奇怪。这种行为是否正常可能是有争议的(至少应该记录在案),但你应该遵循“在你接受的东西上自由,在你生产的东西上严格”的规则。在生成标记时,您应该更加严格。

当空格是单词分隔符时,问题就出现了。我使用标记来标记非html标记。意外修剪的结果是,我在翻译后让单词一起运行。是的,HTML在1个空格和许多后续空格之间没有区别,但在这里我们看到它只忽略了1个空格。我相信HTML的规则是前导空格和尾随空格(即打开标记后的空格或关闭标记前的空格)被视为不重要,多个空间被缩减为单个空间。最好将空格放在粗体标记之外,或使用;相反