Some more things:
<%_at_page contentType="text/html; Charset=UTF-8" language="java"%>
This is ok. The order of the attributes 'contentType' and 'language' does not matter afaik. Maybe you could add the attribute 'pageEncoding' just to be sure.
> 2. Above my header i have this for the JSP files;
<%@ page import="com.neptunediving.*"%>
<%@ include file="WEB-INF/include/LangSupport.jsp"%>
<%@ page contentType="text/html; Charset=UTF-8" language="java"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd">
<html xmlns='
http://www.w3.org/1999/xhtml' xml:lang="en" lang="en">
> Is there anything wrong with this one or not?
It looks fine... except maybe for the capital C in Charset=UTF-8...
As it seems that you are including LangSupport.jsp from everywhere, it might be wise to make sure that that one also has the
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" language="java"%>
directive in it.
> I read somewhere on the internet where somebody said that you need to put what charset you are using in all files. Do i really need to put,
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
or
<%@ page contentType="text/html; Charset=UTF-8" language="java"%>
or both of them in these files as well to get this to work?
Definitively NOT the meta tag.
It's important to understand the distinction between those two. The meta tag is HTML. It's part of the output you are sending to the browser. You should send only one meta tag per page, and only in the head section of the document.
The page directive is part of the JSP. It helps instruct Glassfish how to send it to the browser. You should have this page directive in every JSP page.
Also:
<%@ page contentType="text/html; Charset=UTF-8" language="java"%>
Do you see the capical C in Charset? If you look at the headers I posted in my previous message, you can see that Capital C in there as well:
Content-Type: text/html; Charset=UTF-8;charset=ISO-8859-1
... but something is adding another charset=ISO-8859-1 as well somewhere... You have to find out what is doing that.
HTH,
-Stijn
----- Original Message -----
From: "Stijn de Witt" <StijnDeWitt_at_chello.nl>
To: <users_at_glassfish.dev.java.net>
Sent: Thursday, May 13, 2010 1:45 PM
Subject: Re: RE: character encoding
> Hi again, torleif. First of all apologies for the delayed response. I am
> doing this in my spare time and sometimes other things come up that prevent
> me from being responsive. I have had a loot at your site neptunediving.
>
> First of all I see that in some places you are using HTML entities, such as
> – ... Don't.
> The nice thing of unicode is that you should be able to use all characters
> as is. No funny &something; required... except for:
>
> & = &
> < = <
>> = >
> " = "
> ' = '
>
> .. because those are special characters in XML. Those 5 are all you will
> ever need.
>
> I'll go even further and say that, even though it doesn't really hurt, you
> should NEVER use any other HTML entities. No € , no © no é
> Just use the real characters: € , © and é.
>
> Maybe, only because the actual character is invisible... but you
> shouldn't use anyway. It's used for all the wrong reasons on the web
> these days. If you consider it wrong to use these entities it will lead to
> the best pages in the long run.
>
> Now back to your problem. First of all, I think your page is actually almost
> fine. You are nearly there.
>
> However, if I view your page with Firefox, I see that it is trying to show
> it as 'Western (ISO-8859-1)'. You can see this by looking in the menu
> View -> Character Encoding -> (selected encoding). For your page it has
> 'Western (ISO-8859-1)' selected. This translates into some characters being
> mangled. However, if I pick 'UTF-8' from this menu, it works good.
>
> So why does Firefox choose 'Western (ISO-8859-1)'?
>
> Because you are telling it to do so.... To see what I mean, please download
> the 'Live HTTP Headers' plugin for firefox:
>
> https://addons.mozilla.org/nl/firefox/search?q=Live%20HTTP%20Headers
> menu Extra -> Add-ons, button 'Acquire Add-ons', type 'Live HTTP Headers' in
> the search box, press Enter and once you have found it, Install it. Restart
> firefox after installing and it's ready for use.
>
> In menu Extra you should now have the option 'Live HTTP Headers'. Select
> that and a window opens. It has tabs Headers, Generator, Configure and
> About. Make sure tab Headers is selected and checkbox 'Capture' is checked.
> (note I am using Dutch version myself, so my label translations might be
> slightly off)
>
> Now visist your page again and you will see the headers your browser is
> sending to the server and the response the server is sending:
>
> http://www.neptunediving.com/neptune/
>
> GET /neptune/ HTTP/1.1
> Host: www.neptunediving.com
> User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; nl; rv:1.9.2)
> Gecko/20100115 Firefox/3.6 ( .NET CLR 3.5.30729)
> Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
> Accept-Language: nl,en-us;q=0.7,en;q=0.3
> Accept-Encoding: gzip,deflate
> Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
> Keep-Alive: 115
> Connection: keep-alive
> Cookie: JSESSIONID=135cda96326513825a1134e17dc3;
> __utma=112243995.225387687.1273747211.1273747211.1273747211.1;
> __utmb=112243995.6.10.1273747211;
> __utmz=112243995.1273747211.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none);
> __utmc=112243995
>
> HTTP/1.1 200 OK
> Date: Thu, 13 May 2010 10:51:41 GMT
> Server: GlassFish v3
> X-Powered-By: JSP/2.1
> Content-Type: text/html; Charset=UTF-8;charset=ISO-8859-1
> Keep-Alive: timeout=15, max=100
> Connection: Keep-Alive
> Transfer-Encoding: chunked
>
> (only top headers of first request and response shown here)
>
> In the above headers, the browser was sending a GET request to
> www.neptunediving.com/neptune and the server was sending response HTTP/1.1
> 200 OK. Notice that it says Server: GlassFish v3 and most importantly:
>
> Content-Type: text/html; Charset=UTF-8;charset=ISO-8859-1
>
> That's wrong. It should have been:
>
> Content-Type: text/html; charset=UTF-8
>
> I don't know yet *why* your server is sending that, but that is the cause, I
> am sure. If you fix that, your page will look right.
>
> Can you paste the top part of the JSP you made for this page? I suspect it
> maybe has the wrong heading in it. It should have:
>
> <%@ page language="java" contentType="text/html; charset=UTF-8"
> pageEncoding="UTF-8"%>
>
> (BTW, from your comments I assume you are using JSP. If you are using
> something else, such as JSF Facelets, let us know).
>
> Good luck with it,
>
> -Stijn
>
>
>
> ----- Original Message -----
> From: <glassfish_at_javadesktop.org>
> To: <users_at_glassfish.dev.java.net>
> Sent: Thursday, May 13, 2010 1:20 AM
> Subject: Re: RE: character encoding
>
>
>> Thanks for you help here!!!
>>
>> I will have a look at this link and then i let you know what i get out of
>> this.
>>
>> What i don't understand is why i need to encode special characters when
>> using utf-8? The whole idea of using utf-8 is that you should not need to
>> do this, if so you might as well use iso-8859-1 because that is what you
>> are doing there. Another point is that if you like to edit a character you
>> edit it straight as it is and not in the coded version. Am i wrong here on
>> this issue?
>>
>> I still think i have a problem somewhere in my message bundle. Some how
>> the utf-8 is not displayed correctly or they are not encoded correctly. It
>> works fine in browsers like safari, internet explorer and opera but not in
>> firefox. The other browsers seems to be set to automatic while firefox is
>> not, it reads the header and then set the encoding to iso-8859-1. This is
>> think is the message bundle fault, but i am not sure.
>>
>> In any case i will keep looking to solve this problem after i have had a
>> good night sleep. My page are uploaded now so you can see for your self
>> one time if you like. Just follow this link; http://www.neptunediving.com
>> [Message sent by forum member 'torleif67']
>>
>> http://forums.java.net/jive/thread.jspa?messageID=469611
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
>> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>