[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Google Translate API's



hi Henrik,

Sorry, I've been responding slowly to your messages because I'm very busy.

You've discovered most of the problem already, but let me explain it 
from my point of view.  The following three points are central to the 
way it currently works:

1) URL-encoded data is intended to be data that is valid in an HTTP URL.

2) Since an HTTP URL is part of the HTTP protocol, the encoded data 
should be in the protocol's encoding (CCSID).

3) The RFC documents that set the standard for the HTTP protocol state 
that HTTP uses 7-bit US-ASCII encoding for the protocol itself.

You seem to be asking HTTPAPI to convert your data from EBCDIC to UTF-8, 
then URL encode the UTF-8 data into 7-bit US-ASCII. In other words, 
first convert it to a variable-byte character set, and then encode it as 
a single byte character set for the purposes of making it compliant with 
the 7-bit ASCII in a URL, then convert it back to EBCDIC, so you can add 
it to your URL and have HTTPAPI convert it back to ASCII again when 
sending the request.

WHEW!  Can you see how confusing this gets?

Anyway...  I think I can do that easily enough.  I'll treat the input to 
the URL encoder as being in the CCSID of the PostData (so the existing 
HTTP_setCCSIDs routine will work) and then translate it to whichever 
CCSID you've specified, then encode it, then translate back to EBCDIC as 
if the data had been ASCII.  Complicated, but it should work.

I have a (beta) fix already on my machine.  Unfortunately, I'm in the 
midst of reworking all of the EXAMPLExx members in HTTPAPI (since a lot 
of them are useless or outdated and no longer work) and that makes it 
difficult for me to put together a beta copy for you to test.

So please be patient.

hr@xxxxxxxxxxxx wrote:
>    Hi Scott,
>    I think I found the problem.
>    In CCSID 1208 any character expressed
>    in numeric >128 (x'7F') is 2 to 6 bytes
>    long but in ENCODERR4 it is treated as a
>    one byte long field.
>    Because Google Translate is a "modern"
>    API meant for AJAX calls it requires
>    URL's that is js-encodeURIComponent
>    (UTF-8) encoded instead of js-escaped
>    (ISO-8859-1)
>    Regards
>    Henrik
> 
> 
> 
> ------------------------------------------------------------------------
> 
> -----------------------------------------------------------------------
> This is the FTPAPI mailing list.  To unsubscribe, please go to:
> http://www.scottklement.com/mailman/listinfo/ftpapi
> -----------------------------------------------------------------------

-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------