package com.gmail.dpierron.tools; import java.io.UnsupportedEncodingException; import java.util.Enumeration; import java.util.Locale; import java.util.PropertyResourceBundle; import java.util.ResourceBundle; public class Utf8PropertyResourceBundle extends ResourceBundle { PropertyResourceBundle bundle; Utf8PropertyResourceBundle(PropertyResourceBundle bundle) { this.bundle = bundle; } /* * (non-Javadoc) * * @see java.util.ResourceBundle#getKeys() */ public Enumeration<String> getKeys() { return bundle.getKeys(); } /* * (non-Javadoc) * * @see java.util.ResourceBundle#handleGetObject(java.lang.String) */ protected Object handleGetObject(String key) { String value = (String) bundle.getString(key); if (value == null) return null; try { return new String(value.getBytes("ISO-8859-1"), "UTF-8"); } catch (UnsupportedEncodingException e) { // Shouldn't fail - but should we still add logging message? return null; } } public Locale getLocale() { return bundle.getLocale(); } }