This is a "meta-question" which I came across when trying to find a better specification for another of my questions (Rendering Devanagari ligatures (Unicode) in Java Swing JComponent on Mac OS X).
What I don't quite understand as of yet is which "component" (for want of a better word) of a given system is responsible for displaying Unicode text in Java, and more specifically ligatures.
As far as I understand, the following components have an influence on the process:
- The system character encoding (which for example is UTF-8 on Mac OS X 10.6, UTF-16 on Windows 7 (according to akira's comment on this superuser.com post)).
- The Java
Charset
(which by default is MacRoman on Mac OS X 10.6, cp1252 on Windows 7). - The font that is used to render the text, and that font's encoding information (as suggested by Donal Fellows on my other question:
"fonts include information about what encoding they're using".
- Obviously whether the characters to render are present at the respective Unicode code points.
So if a string of Unicode characters doesn't display correctly (as seen in my other question, s.a.), where would the problem most probably be? I.e., what "component" (what would a better word be?) is responsible for "binding" the ligature, its composition?
Thank you very much in advance and please let me know should you need more information.