X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2Fresources%2FFixedResourceBundleControl.java;fp=src%2Fbe%2Fnikiroo%2Fjvcard%2Fresources%2FFixedResourceBundleControl.java;h=e67ace1c485c2d347df069ea6b231cfb5d28cca9;hb=2a96e7b2cf3f155cccc633272b2f547ffd8f4672;hp=0000000000000000000000000000000000000000;hpb=ef431d801e4e42da46c5c81e7ee7c821f9fb266d;p=jvcard.git diff --git a/src/be/nikiroo/jvcard/resources/FixedResourceBundleControl.java b/src/be/nikiroo/jvcard/resources/FixedResourceBundleControl.java new file mode 100644 index 0000000..e67ace1 --- /dev/null +++ b/src/be/nikiroo/jvcard/resources/FixedResourceBundleControl.java @@ -0,0 +1,54 @@ +package be.nikiroo.jvcard.resources; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URL; +import java.net.URLConnection; +import java.util.Locale; +import java.util.PropertyResourceBundle; +import java.util.ResourceBundle; +import java.util.ResourceBundle.Control; + +/** + * Fixed ResourceBundle.Control class. It will use UTF-8 for the files to load. + * + * @author niki + * + */ +class FixedResourceBundleControl extends Control { + public ResourceBundle newBundle(String baseName, Locale locale, + String format, ClassLoader loader, boolean reload) + throws IllegalAccessException, InstantiationException, IOException { + // The below is a copy of the default implementation. + String bundleName = toBundleName(baseName, locale); + String resourceName = toResourceName(bundleName, "properties"); + ResourceBundle bundle = null; + InputStream stream = null; + if (reload) { + URL url = loader.getResource(resourceName); + if (url != null) { + URLConnection connection = url.openConnection(); + if (connection != null) { + connection.setUseCaches(false); + stream = connection.getInputStream(); + } + } + } else { + stream = loader.getResourceAsStream(resourceName); + } + if (stream != null) { + try { + // Only this line is changed to make it to read properties files + // as UTF-8. + // How can someone use an archaic encoding such as ISO 8859-1 by + // *DEFAULT* is beyond me... + bundle = new PropertyResourceBundle(new InputStreamReader( + stream, "UTF-8")); + } finally { + stream.close(); + } + } + return bundle; + } +} \ No newline at end of file