Sto lavorando a un'applicazione in Delphi 2009 che fa un uso pesante di RTF, modificato usando TRichEdit e TLMDRichEdit. Gli utenti che hanno inserito il testo giapponese in questi controlli RTF hanno inviato report intermittenti sul testo giapponese visualizzato senza senso durante il ricaricamento del contenuto, sia su Windows XP che Vista, con il supporto per la lingua orientale installato.Come visualizzare correttamente i caratteri RTF giapponesi
Tipicamente, inglese e giapponese è misto e è in gran parte visualizzati senza un problema, ad esempio:
Inventory turns partnerships. 在庫回転率の
(le mie scuse se il testo giapponese è rotto in modo errato - non parlo o leggere la lingua).
Molto spesso però, solo la parte giapponese del testo sarà senza senso, per esempio:
ŒÉñ?“]-¦Œüã‚Ì·•Ê‰?-vˆö‚ðŽû‰v‚ÉŒø‰?“I‚ÉŒ‹‚т‚¯‚é’mŽ¯‚ª‘÷Ý‚·‚é?(マーケットセクター、
見込み客の優 先順位と彼らに販売する知識)
Da vasta ricerca on-line, sembra che il problema è il risultato dei font salvati come parte di l'RTF. I caratteri presenti nella versione in lingua giapponese di Windows non sono necessariamente gli stessi di una versione inglese negli Stati Uniti. E 'possibile sostituire a livello di codice i caratteri nel file RTF che produce un risultato quasi accettabile, vale a dire
-D‚‚スƒIƒyƒŒ[ƒVƒ・“‚ニƒƒWƒXƒeƒBƒbƒN‚フƒpƒtƒH[ƒ}ƒ“ƒX‚-˜‰v‚ノŒ‹‚ム‚ツ‚ッ‚ネ‚「‚±ニ‚ヘ?A‘‚「‚ノ-ウ‘ハ‚ナ‚ ‚驕B‚サ‚‚ヘAl“セ‚オ‚ス・‘P‚フˆロ‚ƒƒXƒN‚ノ‚ウ‚‚キB
Tuttavia, ci sono ancora un bel po' caratteri "spazzatura" in là che non sono riconosciuti correttamente come caratteri giapponesi. Guardando il RTF grezzo vedrete il seguente:
-D\'82\'82\u65405?\'83I\'83y\'83\'8c[\'83V\'83\u12539?\ldblquote\'82\u65414?
Chiaramente, i caratteri Unicode sono resi in modo corretto, ma per esempio la \ '82 \ '82 coppia di caratteri dovrebbe essere qualcosa d'altro? La mia ipotesi è che in realtà rappresenti un carattere a doppio byte di qualche tipo, che era per qualche misterioso motivo codificato come due caratteri separati piuttosto che un singolo carattere Unicode.
Esiste un modo generico (relativamente) infallibile per prendere RTF contenente lingue orientali e visualizzarlo in modo affidabile?
Per completezza, ho aggiornato la tabella di caratteri RTF nel modo seguente:
- sostituito il nome del font "l r o S V b N;???????" con "\ '82 \ '6c \ '82 \ '72 \ '82 \' 6f \ '83 \ '53 \ '83 \ '56 \ '83 \ '62 \ '83 \ '4e;"
- Aggiornato nomi dei caratteri, sostituendo "\ Froman \ fprq1 \ fcharset0" con "\ fnil \ fprq1 \ fcharset128"
- Aggiornato nomi dei caratteri, sostituendo "\ Froman \ fprq1 \ fcharset238" con "\ fnil \ fprq1 \ fcharset128"
- Aggiornato nomi dei caratteri, sostituendo "\ Froman \ fprq1" con "\ fnil \ fprq1 \ fcharset128"
- sostituzione nome del font "?? ?????;" con "\ '82 \ '6c \ '82 \ '72 \ '82 \' 6f \ '83 \ '53 \ '83 \ '56 \ '83 \ '62 \ '83 \ '4e;"
Aggiornamento: Aggiornamento nomi dei font da solo non fanno la differenza. Il locale sembra essere il grosso problema. Ho visto alcuni siti che discutono su come convertire la visualizzazione di RTF giapponese in qualcosa che la maggior parte dei lettori gestirà, ma non ho ancora trovato una soluzione, per esempio: here e here.
Se è coinvolta più di una libreria RTF, le diverse traduzioni da/verso RTF rappresentano un potenziale motivo. Se lo scrittore RTF emette un codice che il lettore non capisce, tutto è possibile. – mjn
Nome font \ '82l \' 82r \ '82o \' 83S \ '83V \' 83b \ '83N è mostrato come '' MS PGothic'' quando aperto con Wordpad su Windows 10. Quando aperto con LibreOffice o con Wordpad su Win 7, è mostrato come ''MS P ゴ シ ッ ク''. – mjn
Si noti che il nome del carattere? L? R? O? S? V? B? N; nella tua domanda sembra essere già corrotto, suppongo che sia \ 82l \ 82r \ '82o \' 83S \ '83V \' 83b \ '83N in uno stato precedente del documento. – mjn