Troubleshooting
Problem
IBM i Access Client Solutions (ACS) due to it's reliance on an underlying Java Runtime Environment will by default see unexpected results when attempting to display User Defined Characters (UDC). This document discusses how the Java Runtime Environment's font configuration can be modified to allow the UDCs to be displayed.
Symptom
Unexpected characters are displayed with IBM i Access Client Solutions when UDCs would have been expected.
Cause
The underlying Java Runtime Environment handles the font/character processing differently then the Operating System does, causing a behavior difference.
Resolving The Problem
The Windows End User Defined Character (EUDC) support is used as a fallback, but only if a character cannot be found in the other fonts specified by the font configuration. The characters in the Unicode private use area typically come from the dingbats, symbol, or symbols character subsets. These are typically mapped to the following fonts: dingbats uses Wingdings, symbol uses Symbol, and symbols uses Segoe UI Symbol. Since the Windings, Symbol, and Segoe UI Symbol fonts typically exist on Windows, the characters are taken from there. In order to prevent this, exclusion ranges for the Unicode private use area (e000-f8ff) need to be added for the dingbats, symbol, and symbols character subsets.
The following information describes the Java font configuration files: https://docs.oracle.com/javase/8/docs/technotes/guides/intl/fontconfig.html.
In testing, the following changes allowed this to work on our Windows system with the some sample EUDC files installed.
1. Make sure IBM i ACS is not running
2. Go into the JAVA_HOME\lib directory (on the test system that was C:\Program Files\Java\jre1.8.0_121\lib)
3. Copy fontconfig.properties.src to the an easy to find location like Desktop as fontconfig.properties
4. Edit fontconfig.properties with a text editor
5. Add the following lines after the other exclusion.* lines and save the file (in the test environment file these lines were added at line number 249)
exclusion.dingbats=e000-f8ff
exclusion.symbol=e000-f8ff
exclusion.symbols=e000-f8ff
6. Copy the altered fontconfig.properties file to the JAVA_HOME\lib directory as fontconfig.properties
7. Start IBM i ACS
The expected EUDC characters should now display.
The following information describes the Java font configuration files: https://docs.oracle.com/javase/8/docs/technotes/guides/intl/fontconfig.html.
In testing, the following changes allowed this to work on our Windows system with the some sample EUDC files installed.
1. Make sure IBM i ACS is not running
2. Go into the JAVA_HOME\lib directory (on the test system that was C:\Program Files\Java\jre1.8.0_121\lib)
3. Copy fontconfig.properties.src to the an easy to find location like Desktop as fontconfig.properties
4. Edit fontconfig.properties with a text editor
5. Add the following lines after the other exclusion.* lines and save the file (in the test environment file these lines were added at line number 249)
exclusion.dingbats=e000-f8ff
exclusion.symbol=e000-f8ff
exclusion.symbols=e000-f8ff
6. Copy the altered fontconfig.properties file to the JAVA_HOME\lib directory as fontconfig.properties
7. Start IBM i ACS
The expected EUDC characters should now display.
[{"Type":"MASTER","Line of Business":{"code":"LOB68","label":"Power HW"},"Business Unit":{"code":"BU070","label":"IBM Infrastructure"},"Product":{"code":"SWG60","label":"IBM i"},"ARM Category":[{"code":"a8m3p000000PCRGAA4","label":"IBM i Access-\u003EAccess Client Solutions-\u003EEmulator"}],"ARM Case Number":"","Platform":[{"code":"PF012","label":"IBM i"}],"Version":"All Versions"}]
Was this topic helpful?
Document Information
More support for:
IBM i
Component:
IBM i Access->Access Client Solutions->Emulator
Software version:
All Versions
Operating system(s):
IBM i
Document number:
668009
Modified date:
20 November 2024
UID
nas8N1021938
Manage My Notification Subscriptions