2016-10-10 52 views
0

根據OS(或機器),iText中BaseFont的charExists()api工作方式不同。charExists()的iText中BaseFont的工作方式不同,具體取決於OS

返回值是不同的,即使是相同的字符和相同的字體。(物理字體文件是一樣的,太)

一體機是AIX操作系統和另一臺機器是Sun Solaris操作系統。

影響結果的因素是什麼?

在這種情況下,我能做些什麼來獲得相同的返回值?

什麼是檢查點? (例如:區域設置等。)

問候

+2

請提供足夠的代碼來重現問題。 – mkl

+0

BaseFont baseFont = font.getBaseFont(); boolean isExist = baseFont.charExists(ch); //'isExist'的值根據操作系統的不同而不同,雖然'ch'是相同的,字體文件也是一樣的。 – Franken

+0

** A **請將相關的額外信息,特別是代碼添加到問題主體,而不僅僅是一些小小的評論。 ** B **問題發生在哪個角色? – mkl

回答

0

字符發生問題是Unicode字符 'MIDDLE DOT'(U + 00B7)。

當java將字節數組更改爲String時,與AIX java不同,IBM AIX中的Java將'MIDDLE DOT'更改爲'KATAKANA MIDDLE DOT'(U + 30FB)。

因此,將字符串的字符集設置爲UTF-8,然後問題就解決了。

感謝。

相關問題