Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 549
  • Last Modified:

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
0
chocksmith01
Asked:
chocksmith01
  • 4
  • 3
1 Solution
 
wdosanjosCommented:
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.
0
 
chocksmith01Author Commented:
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).
0
 
BurniePCommented:
Hi,

Take a look at this thread : http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_22577077.html

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

0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
chocksmith01Author Commented:
Didn't I do that???
My function has: X.setRequestHeader('Content-Type', 'text/html;charset=iso-8859-1')
0
 
wdosanjosCommented:
"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".
0
 
chocksmith01Author Commented:
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
0
 
wdosanjosCommented:
According to the documentation, the server is ultimately responsible for honoring the Content-Type set on the request header.  I think you need to check the server code/configuration.  If the server's response does not contain the Content-Type header, it seems that XMLHttpRequest assumes is UTF-8, that might be the issue here.

http://msdn.microsoft.com/en-us/library/ms536752%28v=VS.85%29.aspx

You can try the following to view the response headers:

            ...
            X.send(V ? V : '');
            alert(X.getAllResponseHeaders());
            ...
0
 
chocksmith01Author Commented:
It did not solved the issue, but gave me good ideas to overcome the problem doing things in a different way.
0

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now