2016-10-10 2 views
0

charExists() API von BaseFont in iText funktioniert anders, je nach Betriebssystem (oder Maschine).charExists() von BaseFont in iText funktioniert unterschiedlich, je nach Betriebssystem

Rückgabewert ist anders, auch derselbe Charakter und gleiche Schriftart. (Physische Font-Datei ist die gleiche, auch)

Eine Maschine ist AIX-Betriebssystem und eine andere Maschine ist Sun Solaris OS.

Was beeinflusst das Ergebnis?

Was kann ich tun, um in diesem Fall denselben Rückgabewert zu erhalten?

Was sind Checkpoints? (Ex. Locale etc ..)

freundlichen Grüßen

+2

Geben Sie bitte genügend Code ein, um das Problem zu reproduzieren. – mkl

+0

BaseFont baseFont = font.getBaseFont(); Boolean isExist = baseFont.charExists (ch); // Der Wert von 'isExist' unterscheidet sich je nach Betriebssystem, obwohl 'ch' gleich ist und auch die Font-Datei gleich ist. – Franken

+0

** A ** Bitte fügen Sie dem Fragetext relevante Zusatzinformationen, insbesondere Code, hinzu, nicht nur einen winzigen Kommentar. ** B ** Für welche Zeichen tritt das Problem auf? – mkl

Antwort

0

Charakter das Problem auftritt Unicode Character 'MIDDLE DOT' (U + 00B7).

Wenn Java-Byte-Array in String ändern, ändert Java in IBM AIX "MIDDLE DOT" zu "KATAKANA MIDDLE DOT" (U + 30FB) im Gegensatz zu Oracle Java.

Setzen Sie also den Zeichensatz von String auf UTF-8, dann ist das Problem gelöst.

Danke.

Verwandte Themen