CharsetMapperpublic class CharsetMapper extends Object implements CloneableUtility class that attempts to map from a Locale to the corresponding
character set to be used for interpreting input text (or generating
output text) when the Content-Type header does not include one. You
can customize the behavior of this class by modifying the mapping data
it loads, or by subclassing it (to change the algorithm) and then using
your own version for a particular web application. |
Fields Summary |
---|
public static final String | DEFAULT_RESOURCEDefault properties resource name. | protected Properties | mapThe mapping properties that have been initialized from the specified or
default properties resource. |
Constructors Summary |
---|
public CharsetMapper()Construct a new CharsetMapper using the default properties resource.
// ---------------------------------------------------------- Constructors
this(DEFAULT_RESOURCE);
| public CharsetMapper(String name)Construct a new CharsetMapper using the specified properties resource.
try {
InputStream stream =
this.getClass().getResourceAsStream(name);
map.load(stream);
stream.close();
} catch (Throwable t) {
throw new IllegalArgumentException(t.toString());
}
|
Methods Summary |
---|
public void | addCharsetMappingFromDeploymentDescriptor(java.lang.String locale, java.lang.String charset)The deployment descriptor can have a
locale-encoding-mapping-list element which describes the
webapp's desired mapping from locale to charset. This method
gets called when processing the web.xml file for a context
map.put( locale, charset );
| public final java.lang.Object | clone()
try {
CharsetMapper clone = (CharsetMapper)super.clone();
clone.map = (Properties)map.clone();
return clone;
} catch (CloneNotSupportedException e) {
throw new InternalError(e.toString());
}
| public java.lang.String | getCharset(java.util.Locale locale)Calculate the name of a character set to be assumed, given the specified
Locale and the absence of a character set specified as part of the
content type header.
// END RIMOD 4870531
// ------------------------------------------------------- Public Methods
String charset = null;
// First, try a full name match (language and country)
charset = map.getProperty(locale.toString());
if (charset != null)
return (charset);
// Second, try to match just the language
charset = map.getProperty(locale.getLanguage());
return (charset);
|
|