我工作的德爾福2009年,這使得RTF的大量使用的應用程序,使用TRichEdit和TLMDRichEdit編輯。誰進入這些RTF控件日本文字用戶已經提交有關日本的文本間歇報告重裝安裝的內容,無論是在Win XP和Vista,與東方語言支持時顯示爲亂碼。如何正確地顯示日本RTF字體
通常,英語和日語的混合沒有問題大多顯示,例如:
Inventory turns partnerships. 在庫回転率の
(我的道歉,如果日本的文字被錯誤地打破 - 我不說話或閱讀的語言)。
相當頻繁然而,只有文本的日本部分將雜亂,例如:
ŒÉñ?「]-¦Œüã‚Ì·•Ê‰?-vˆö‚ðŽû‰v‚ÉŒø‰?「I‚ÉŒ‹‚т‚¯‚é’mŽ¯‚ª‘÷Ý‚·‚é?(マーケットセクター、
見込み客の優 先順位と彼らに販売する知識)
從廣泛的在線搜索,它出現的問題是因爲保存的部分字體的結果RTF。日文版Windows上的字體不一定與美國英文版相同。它可以通過編程方式替換字體,其中產生一個幾乎可以接受的結果的RTF文件,即
-D‚‚スƒIƒyƒŒ[ƒVƒ・「‚ニƒƒWƒXƒeƒBƒbƒN‚フƒpƒtƒH[ƒ}ƒ「ƒX‚-˜‰v‚ノŒ‹‚ム‚ツ‚ッ‚ネ‚「‚±ニ‚ヘ?A‘‚「‚ノ-ウ‘ハ‚ナ‚ ‚驕B‚サ‚‚ヘAl「セ‚オ‚ス・‘P‚フˆロ‚ƒƒXƒN‚ノ‚ウ‚‚キB
然而,仍然有存在不少「垃圾」字符,則不能正確識別的日本文字。縱觀原料RTF,你會看到以下內容:
-D\'82\'82\u65405?\'83I\'83y\'83\'8c[\'83V\'83\u12539?\ldblquote\'82\u65414?
顯然,Unicode字符被正確渲染,但例如\ '82 \ '82對字符應是別的東西?我的猜測是,它實際上代表了某種雙字節字符,這是由於一些神祕原因編碼爲兩個單獨的字符,而不是一個Unicode字符。
是否有一個通用的,(相對)萬無一失採取RTF包含東方語言和可靠地再次顯示它的方式?
爲了完整性起見,我更新RTF字體表以如下方式:
- 替換的字體名稱 「L R■解讀V B n的;???????」用 「\ '82 \ '6C \ '82 \ '72 \ '82 \' 1207 \ '83 \ '53 \ '83 \ '56 \ '83 \ '62 \ '83 \'4E;」
- 通過更換更新的字體名稱 「\弗羅曼\ fprq1 \ fcharset0」 與 「\ fnil \ fprq1 \ fcharset128」
- 更新的字體替換名 「\弗羅曼\ fprq1 \ fcharset238」 與 「\ fnil \ fprq1 \ fcharset128」
- 將「\ froman \ fprq1」替換爲「\ fnil \ fprq1 \ fcharset128」更新的字體名稱
- 替換字體名稱「?? ?????;」用 「\ '82 \ '6C \ '82 \ '72 \ '82 \' 1207 \ '83 \ '53 \ '83 \ '56 \ '83 \ '62 \ '83 \'4E;」
更新:更新單獨的字體名稱不會有所作爲。現場似乎是一個大問題。我看到了幾個網站討論圍繞日本RTF的顯示轉換的東西大多數讀者會處理的方式,但我還沒有找到一個解決辦法,例如參見: here和here。
如果涉及多個RTF庫,則從/到RTF的不同轉換是潛在的原因。如果RTF編寫器發出讀者不理解的代碼,那麼一切都是可能的。 – mjn 2017-06-02 18:48:16
當在Windows 10上用寫字板打開時,字體名稱'82l''82r''82o''83S''83V''83b''83N顯示爲'MS PGothic'。用LibreOffice打開或用寫字板Win 7,它顯示爲「MS Pゴシック」。 – mjn 2017-06-02 18:52:43
請注意,字體名稱?l?r?o?S?V?b?N;在你的提問中似乎已經是腐敗了,我想在文件的前一個狀態中它是'82''82''83''83''83b''83 N. – mjn 2017-06-02 18:53:58