Advanced Java Globalization
Charles Hornig - IBM Corporation

Intended Audience: Software Engineers

Session Level: Advanced

This presentation describes how to improve the level of global support of Java code from "works most of the time" to "works all of the time". The focus is on specific problem areas we have identified in reviews of existing IBM product code. Some of the topics covered include:

  • How and when should code deal with individual "characters" in user data? Should the code deal with code units, Unicode characters, or logical characters? What about combining characters and supplementary characters?
  • Is it ever appropriate to do string comparison and searching using String class methods, as opposed to the Collator class? If so, when?
  • How should applications handle data intended to be read by both users and programs?
  • When is case conversion appropriate?
  • How should character encoding conversion errors be handled?
  • How should character encoding be handled in JNI interfaces?

Examples of how to code to avoid these problems and how to test for them.

The presentation is intended for anyone responsible for producing Java applications to be used in a multinational environment. Attendees should be familiar with the Java programming language, basic globalization concepts, and basic Unicode concepts. Writing applications with these points in mind will allow them to run in less common environments without costly customer support activity to repair failing code.