api.microsofttranslator.com return some html

Dear all,
I Use api.microsofttranslator.com web service as base of my web services.

The translated value is returned like this
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">¿¿¿¿¿¿¿¿</string>

Open in new window


 I just need to return the translated word only (User) that why I use this code:
				Context.Response.ContentEncoding = System.Text.Encoding.UTF8; 
				Context.Response.Output.Write(xTranslation.InnerText.ToString() ); 
				
				Context.Response.End();
				return string.Empty;

Open in new window

But it return :
<html><head></head><body>¿¿¿¿¿¿¿¿</body></html>

Open in new window


 just need the translated word not any thing else.

(btw the extra html returned only if I translate from English to Arabic , but if I translate from Arabic to English the only translated word are returned =As Required)
thanks.
ethar1Asked:
Who is Participating?
 
Melih SARICAOwnerCommented:
when u check ur xml in the first code block is it correct ?
IF its correct then u must not convert it to 8859-1.
0
 
Melih SARICAOwnerCommented:
It seems to be an encoding problem.

Returning data is unicode and ur data comes with utf-8. so u need to convert from utf to unicode to see in arabic. but u ave to do this conversion in byte not as string
0
 
ethar1Author Commented:
Thanks for your reply,
Yes for sure my problem in encoding, but how to solve it?
                        Context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1")  ; // I try utf-8 and GetEncoding("ISO-8859-1");
                        Context.Response.Output.Write(xTranslation.InnerText.ToString() ); //xTranslation.InnerText
                        
                        Context.Response.End();
                        return string.Empty;
0
 
Melih SARICAOwnerCommented:
did u check the examples of the api.microsofttranslator.com?

which method are u using ? ajax,http or soap ?
0
 
ethar1Author Commented:
I use this:"
			string uri = "http://api.microsofttranslator.com/v2/Http.svc/Translate?text=" + sText + "&from=" + sFrom + "&to=" + sTo;
			System.Net.WebResponse response = null;
			try
			{
				System.Net.WebRequest translationWebRequest = System.Net.WebRequest.Create(uri);
				translationWebRequest.Headers.Add("Authorization", headerValue);

				response = translationWebRequest.GetResponse();

				System.IO.Stream stream = response.GetResponseStream();
				System.Text.Encoding encode = System.Text.Encoding.GetEncoding("utf-8"); //
				System.IO.StreamReader translatedStream = new System.IO.StreamReader(stream, encode);
				System.Xml.XmlDocument xTranslation = new System.Xml.XmlDocument();
				xTranslation.LoadXml(translatedStream.ReadToEnd());
return (xTranslation.InnerText.ToString());

Open in new window


When I use above method it return XML with correct encoding.
but when I use :
				Context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1")  ; // GetEncoding("ISO-8859-1");
				Context.Response.Output.Write(xTranslation.InnerText.ToString() ); //xTranslation.InnerText

				Context.Response.End();
				return string.Empty;

Open in new window

to prevent xml and show the information (translation ) only  I got bad encoding
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.