Importance of Character Encoding

If a MIME type for byte print data does not include a charset parameter, indicating the encoding, the Java Print Service assumes a character set of US-ASCII. This behavior is different than that of the Java runtime, which always assumes the default encodi ng for the user's locale on the underlying operating system, which might be different than US-ASCII.

Every instance of the Java™ Virtual Machine* has a default character encoding determined during virtual-machine startup that usually depends upon the locale and charset used by the underlying operating system. In a distributed environment, two JVM's might n ot share the same default encoding. Thus clients who want to stream platform-encoded text data from the host platform to a Java Print Service instance must explicitly declare the charset and not rely on defaults.

For these reasons, applications that stream text data should always specify the charset in the MIME type. To specify a MIME type, an application needs to determine the host platform's encoding, which it does by calling the DocFlavor.hostEncoding metho d. The MIME type returned from this method is guaranteed to be understood by the current JVM.

See character encodings for more information on the character encodings supported on the Java platform.

*As used on this web site, the terms "Java Virtual Machine" or "JVM" mean a virtual machine for the Java platform.


Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.