• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 553
  • 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
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
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
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.

Join & Write a Comment

Featured Post

Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

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