Link to home
Start Free TrialLog in
Avatar of chocksmith01
chocksmith01Flag for Brazil

asked on

Javascript encoding problem

Hello experts,
I've been learning to hate Javascript. Please help me...

I am working on a page that reads a CVS file and shows it on a text area.

The file (input.csv) is enconded on ISO-8859-1 as shown in Figure 1 and Figure 2.

My page is also encoded as ISO-8859-1 and configured to use ISO-8859-1 as shown in Figure 3.

My page read the file using the following function:

function IO(U, V) {//LA MOD String Version. A tiny ajax library.  by, DanDavis
            var X = !window.XMLHttpRequest ? new ActiveXObject('Microsoft.XMLHTTP')
                        : new XMLHttpRequest();
            X.open(V ? 'PUT' : 'GET', U, false);
            X.setRequestHeader('Content-Type', 'text/html;charset=iso-8859-1')
            X.send(V ? V : '');
            return X.responseText.toUpperCase();
      }

Figure 4 shows how the Text Area looks like when I do:
        text = IO("input.csv");
        othersConsole.value = text;

I am using Safari.

What am I missing???

Thanks!!
Rodrigo.

Figure1.png
Figure2.png
Figure3.png
Figure4.png
Avatar of wdosanjos
wdosanjos
Flag of United States of America image

It seems to be a font family issue, where those characters are not available in the font.  Try using a different font that you know can display the characters.
Avatar of chocksmith01

ASKER

As you can see on Figure 2, the question mark funny char appears when we try to display ISO-8859-1 chars as UTF-8. It is not a matter of font family...
My guess is that for some reason the <meta> tag is being ignored (Figure 3).
Hi,

Take a look at this thread : https://www.experts-exchange.com/questions/22577077/AJAX-xmlHttp-responseText-encoding-error.html

Basically the solution was to add this as the first line :
Response.AddHeader "Content-type", "text/html; charset=iso-8859-1"

Didn't I do that???
My function has: X.setRequestHeader('Content-Type', 'text/html;charset=iso-8859-1')
"iso-8859-1" defines the character encoding not the font.  The font would be 'Arial', 'Times New Roman', 'Verdana', etc.  There are different ways to define the font. It could be on your style sheet or on the tag itself, something like style="font-family:Arial".
That's what I'be been trying to say.
It was nothing to do with Fonts. I do not understand why it ignores my commands and tags to use iso-8859-1 and keep using utf-8
ASKER CERTIFIED SOLUTION
Avatar of wdosanjos
wdosanjos
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
It did not solved the issue, but gave me good ideas to overcome the problem doing things in a different way.