Well i don't really understand what you mean. Altavista is using a special font or what? Isn't it just a bunch a bytes that the web server is returning? Moreover russian and greek can be encoded in utf-8 with no need for special fonts, right?.
franck 2006/10/24, Mehar SVLN <[EMAIL PROTECTED]>:
Hai Frank, I may be wrong but its my guess Usually u see squares only when its an issue with Font If some reader unable to decode the bytes with some encoding.. it will throw an error :) Mehar On 10/24/06, Java Freelance <[EMAIL PROTECTED]> wrote: > > Hi all, > > I am trying to use http://babelfish.altavista.com online traduction > tool to dynamically translate from a language to another. > But when i try to parse babelfish response to my request for a > translation to russian or greek, i get little squares instead of > russian or greek characters. So i tried to use the getResponseBody() > on the post method to get an array of bytes so i could convert it > using UTF-8 or ISO-8859-1 or UTF-16. No matter what character encoding > i use i get those annoying little squares. Here's is my code. Maybe > you can figure out what's wrong : > > > HttpClient client = new HttpClient(); > HttpClientParams params = client.getParams(); > params.setParameter("http.useragent","Mozilla/5.0 (Windows; U; > Windows NT 5.1; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"); > > PostMethod post = new PostMethod("http://babelfish.altavista.com/tr"); > > > > NameValuePair[] id = {new NameValuePair("doit", "done"), new > NameValuePair("intl", "1"), new NameValuePair("tt", "urltext"), new > NameValuePair("trtext", "translate this!"), new NameValuePair("lp", > "en_ru"), new NameValuePair("btnTrTxt", "Traduction")}; > > > post.setRequestBody(id); > post.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new > DefaultHttpMethodRetryHandler(5, false)); > > try { > status = client.executeMethod(post); > if (status != HttpStatus.SC_OK) { > message = "Altavista access restricted : status = " + status; > //log.warn(message); > } > else { > String encoding = post.getResponseCharSet (); > > String altavistaResponse /*= new String(post.getResponseBody(), > "ISO-8859-1")*/; > //altavistaResponse = new String(post.getResponseBody(), > "ISO-8859-7"); > altavistaResponse = new String( post.getResponseBody(), "UTF-8"); > //altavistaResponse = new String(post.getResponseBody(), "UTF-16"); > //altavistaResponse = post.getResponseBodyAsString(); > > > String translation = parseAltavistaResponse(altavistaResponse); > > > } > } > catch (HttpException httpE) { > message = "http error: " + httpE.getMessage(); > log.warn(message); > } > catch (IOException ioE) { > message = "io error: " + ioE.getMessage(); > log.warn(message); > } > catch (FwkHttpParseException pe) { > message = "FwkHttpParseException : " + pe.getMessage(); > log.warn(message); > } > finally { > post.releaseConnection(); > } > > > > > > > > public String parseAltavistaResponse(String reponse) throws > FwkHttpParseException { > String translation; > int pos = 0; > > pos = reponse.indexOf("<form", pos); > if (pos == -1) { > throw new FwkHttpParseException("Impossible to find '<form' within > the response"); > } > pos = reponse.indexOf("<div", pos); > if (pos == -1) { > throw new FwkHttpParseException("Impossible to find '<div' after > <form within the response"); > } > > pos = reponse.indexOf(">", pos); > if (pos == -1) { > throw new FwkHttpParseException("Impossible to find '>' after > '<div' within the response"); > } > > int pos2 = reponse.indexOf("</", pos); > if (pos2 == -1) { > throw new FwkHttpParseException("Impossible to find '</' after > '<div...>' within the response"); > } > translation= reponse.substring(pos + 1, reponse.indexOf("</", pos2)); > > return translation; > } > > > > I also try to add header to th request like a logical referer but with > no interesting result. > > > > Please help!!! > > > > Franck > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Thanks and Regards SVLN Mehar email:[EMAIL PROTECTED] mobile:09986459049
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
