Hey!

 

Iâm trying to make it so that my clients could use different languages when entering stuff into my froms. ÂWhat I am doing right now is:

 

  • All my pages have <%@ page language="java" contentType="text/html; charset=UTF-8" at the top
  • When I retrieve parameters I use the following procedure:Â

 

String text = request.getParameter("text");

ÂÂ text = new String(text.getBytes("8859_1"),"UTF8");

 

This seems to work perfectly for throwing parameters from page to page. ÂAlso, it seems to work fine to ENTER stuff into MySQL (I look at mysql through GUI client, and I can see all my Unicode stuff correctly).

 

However, what is troubling me, is that when I retrieve that Unicode stuff from DB and try to display it, I get a whole bunch of junk on my page. ÂHereâs how I retrieve it:

 

/**

ÂÂÂÂÂÂÂÂÂÂÂ Â* Returns a list containing GuestBookEntry's ordered by date.

ÂÂÂÂÂÂÂÂÂÂÂ Â* @param page from which page (page 1: entries 1 thru 5)

ÂÂÂÂÂÂÂÂÂÂÂ Â* @return a list containing GuestBookEntry's ordered by date, empty list if none.

ÂÂÂÂÂÂÂÂÂÂÂ Â*/

ÂÂÂÂÂÂÂÂÂÂÂ public static List getEntries( int page ) throws SQLException

ÂÂÂÂÂÂÂÂÂÂÂ {

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Connection con = null;

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ PreparedStatement st = null;

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ ResultSet rs = null;

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ List entries = new LinkedList();

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ if ( page < 1 ) throw new IllegalArgumentException("Page must be 1 or above!");

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ int startIndex = (page-1)*offset;

ÂÂÂÂÂÂÂÂÂÂÂ

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ try

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ {

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ con = Manager.getInstance().getConnection();

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ st = con.prepareStatement("SELECT name,email,date,IP,message FROM GuestBook ORDER BY date DESC LIMIT ?,?");

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ st.setInt(1,startIndex);

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ st.setInt(2,offset);

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ rs = st.executeQuery();

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ while ( rs.next() )

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ {

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ String name = rs.getString(1);

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ String email = rs.getString(2);

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ String IP = rs.getString(4);

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ String message = rs.getString(5);

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Timestamp date = rs.getTimestamp(3);

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ GuestBookEntry e = new GuestBookEntry(name,email,IP,message,date);

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ entries.add(e);

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ }

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ }

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ finally

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ {

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ try{ if ( con != null ) con.close(); } catch(SQLException e){ Logger.getLogger("problem").error("Can't close Connection!",e); }

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ }

ÂÂÂÂÂÂÂÂÂÂÂ

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ return entries;ÂÂÂ

ÂÂÂÂÂÂÂÂÂÂÂ }

 

And in my JSP page I simply display name and message from the list returned by this functionâ

Does anyone know how to make my JSP page display my stuff correctly? I also tried doing:

 

<%= new String(message.getBytes("8859_1"),"UTF8") %>

 

But that just gives me a whole bunch of boxes instead of text.

 

Any help is greatly appreciated.


Best Regards,

Ivan V. Jouikov
(206) 228-6670

 


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.716 / Virus Database: 472 - Release Date: 05.07.2004

Reply via email to