Posts Tagged ‘Java’

UTF-8 with Hibernate 3.0 and MySQL

Friday, January 12th, 2007 by DenisH

Hi again, I’m now tackling something I’ve been meaning to do for ages (and probably should have done before I started the project) and that is to use Hibernate rather than rolling my own SQL.

I’m reading the book “Hibernate in Action” by Christian Bauer and Gavin King and have been trying it out. The book relates to Hibernate 2.0 and 2.1 so doesn’t include annotations which is a bit of a shame, but it’s still a good start.

Unfortunately as readers of this blog will know, I’m trying to put UTF-8 strings into the database so you can imagine my disappointment when I saw the familiar question marks appearing where there should be interesting new characters.

The fix turned out to be not so difficult to find however, thanks to Philip Whirlycott’s blog posting More UTF-8 head-thumping with Hibernate 3 (obviously I’m not the only one struggling with these issues).

With Hibernate 3 (maybe not with 2.1, I’m not sure), you need to add some extra connection parameters:

jdbc:mysql://localhost/mydb?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8

If you put this in your hibernate.cfg.xml file for the JDBC URL it works and you can save the UTF-8 correctly.

UTF-8 subjects in javax.mail

Wednesday, November 8th, 2006 by DenisH

I’ve been having problems with putting unicode strings into the subject of emails sent using javax.mail.

In the end, the solution was very simple and I found it here:

http://www.velocityreviews.com/forums/t132009-utf8-characters-not-appearing-correctly-in-email-subject-line.html

As long as you use “UTF-8″ and not “UTF8″ it all seems to work fine, so the code you need is:

Properties props = new Properties();
// put in your SMTP host in here
props.put(”mail.smtp.host”, “localhost”);
Session s = Session.getInstance(props, null);

MimeMessage message = new MimeMessage(s);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(subject, “UTF-8″);
message.setText(body, “UTF-8″);
message.setHeader(”Content-Type”, “text/plain; charset=UTF-8″);
Transport.send(message);

Internationalisation again

Wednesday, October 18th, 2006 by DenisH

Further to my post about creating properties files when I had text files in unicode, we decided that the best thing was to have a web application to do the conversion. You can then just paste in whatever text you want to encode and it tells you what the java escaped text string(s) should be.

And, we decided we might as well make it publicly available. So here it is.

Let us know if you find any bugs or if you can think of a better way to do it :-)

Internationalising JSPs

Tuesday, August 1st, 2006 by DenisH

We recently had what sounded like a simple job to do: produce a questionnaire in several languages including Russian and store the results in a MySQL database. Now I could have chosen PHP to produce the questionnaire, but I thought that using Java resource bundles would be the easiest. I knew that using the JSTL fmt: tags we could do fmt:message and pull the messages out of a resouce bundle so all I had to do was get the translators to take the english property file, translate it and hey presto! Java knows about Unicode right into its core, so it would all work wouldn’t it.

How wrong I was! (more…)

Converting Lisp universal times to Java Dates

Wednesday, March 29th, 2006 by DenisH

I don’t suppose that this is something that many people need to do, but just in case I thought I’d post this little code snippet (more…)