Tag: microsoft translator

用中文字符向Microsoft Translator API发布XML会引发反序列化exception

我正在尝试使用Microsoft Translator API将中文(简体)翻译成英文。 一些要求 我必须使用HTTP方法POST ,而不是使用查询string的GET ,因为我的查询超过了微软的URI限制的15,845个字符(请注意,即使在中文字符的情况下使用less于10,000个字符的限制,是查询string必须进行URL编码,这会显着增加长度,但是在确定字符数之前由Microsoft解码。 唯一允许POST的翻译HTTP方法是TranslateArrayMethod ,例如TranslateMethod只允许GET 。 不幸的是, TranslateArrayMethod只接受一个XML文档,所以我必须使用XML。 以下是我发送的XML文档的示例: <TranslateArrayRequest> <AppId/> <From>es</From> <Options> <ContentType xmlns="http://schemas.datacontract.org/2004/07/Microsoft.MT.Web.Service.V2">text/plain</ContentType> </Options> <Texts> <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <![CDATA[Hola]]> </string> </Texts> <To>en</To> </TranslateArrayRequest> 这工作正常,结果是: <ArrayOfTranslateArrayResponse xmlns="http://schemas.datacontract.org/2004/07/Microsoft.MT.Web.Service.V2" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <TranslateArrayResponse> <From>es</From> <OriginalTextSentenceLengths xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <a:int>4</a:int> </OriginalTextSentenceLengths> <TranslatedText>Hello</TranslatedText> <TranslatedTextSentenceLengths xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <a:int>5</a:int> </TranslatedTextSentenceLengths> </TranslateArrayResponse> </ArrayOfTranslateArrayResponse> 但是,如果我添加任何中文字符,如下所示: <TranslateArrayRequest> <AppId/> <From>zh-CHS</From> <Options> <ContentType xmlns="http://schemas.datacontract.org/2004/07/Microsoft.MT.Web.Service.V2">text/plain</ContentType> </Options> <Texts> <string […]