Estoy trabajando en una aplicación en Delphi 2009 que hace un uso intensivo de RTF, editado con TRichEdit y TLMDRichEdit. Los usuarios que ingresaron texto en japonés en estos controles RTF han estado enviando informes intermitentes sobre el texto japonés que se muestra como un galimatías al volver a cargar el contenido, tanto en Win XP como en Vista, con Eastern Language Support instalado.Cómo mostrar correctamente las fuentes RTF japonesas
Típicamente, Inglés y japonés se mezcla y se muestra sobre todo sin ningún problema, por ejemplo:
Inventory turns partnerships. 在庫回転率の
(mis disculpas si el texto en japonés se rompe de forma incorrecta - no hablo o leer el idioma).
Muy embargo con frecuencia, sólo la parte japonesa del texto será un galimatías, por ejemplo:
ŒÉñ?“]-¦Œüã‚Ì·•ʉ?-vˆö‚ðŽû‰v‚ÉŒø‰?“I‚ÉŒ‹‚т‚¯‚é’mޝ‚ª‘÷Ý‚·‚é?(マーケットセクター、
見込み客の優 先順位と彼らに販売する知識)
De extensa búsqueda en línea, parece que el problema es como resultado de las fuentes guardadas como parte de el RTF. Las fuentes presentes en la versión en japonés de Windows no son necesariamente las mismas que las versiones en inglés de EE. UU. Es posible reemplazar mediante programación las fuentes en el archivo RTF que produce un resultado casi aceptable, es decir,
-D‚‚スƒIƒyƒŒ[ƒVƒ・“‚ニƒƒWƒXƒeƒBƒbƒN‚フƒpƒtƒH[ƒ}ƒ“ƒX‚-˜‰v‚ノŒ‹‚ム‚ツ‚ッ‚ネ‚「‚±ニ‚ヘ?A‘‚「‚ノ-ウ‘ハ‚ナ‚ ‚驕B‚サ‚‚ヘAl“セ‚オ‚ス・‘P‚フˆロ‚ƒƒXƒN‚ノ‚ウ‚‚キB
Sin embargo, todavía hay un buen número de caracteres "basura" de allí que no son reconocidos correctamente como caracteres japoneses. En cuanto a la RTF prima que va a ver lo siguiente:
-D\'82\'82\u65405?\'83I\'83y\'83\'8c[\'83V\'83\u12539?\ldblquote\'82\u65414?
Claramente, los caracteres Unicode se procesan correctamente, pero por ejemplo el \ '82 \ '82 par de caracteres deben ser otra cosa? Supongo que en realidad representa un carácter de doble byte de algún tipo, que fue por alguna razón misteriosa codificada como dos caracteres separados en lugar de un único carácter Unicode.
¿Existe una manera genérica (relativamente) infalible de tomar RTF que contenga idiomas orientales y volver a mostrarlo de manera confiable?
Por el bien exhaustividad, actualiza la tabla de fuentes RTF de la siguiente manera:
- reemplazado el nombre de la fuente "l r o S V b N;???????" con "\ '82 \ '6c \ '82 \ '72 \ '82 \' 6f \ '83 \ '53 \ '83 \ '56 \ '83 \ '62 \ '83 \ '4e;"
- Actualizado nombres de fuentes mediante la sustitución de "\ froman \ fprq1 \ fcharset0" con "\ fnil \ fprq1 \ fcharset128"
- Actualizado nombres de fuentes mediante la sustitución de "\ froman \ fprq1 \ fcharset238" con "\ fnil \ fprq1 \ fcharset128"
- Actualizado nombres de fuentes mediante la sustitución de "\ froman \ fprq1" con "\ fnil \ fprq1 \ fcharset128"
- sustitución de nombre de la fuente "?? ?????;" con "\ '82 \ '6c \ '82 \ '72 \ '82 \' 6f \ '83 \ '53 \ '83 \ '56 \ '83 \ '62 \ '83 \ '4e;"
Actualizar: Actualización de nombres de fuentes solamente no hacen la diferencia. La ubicación parece ser el gran problema. He visto algunos sitios discutiendo formas de convertir la pantalla del RTF japonés a algo que la mayoría de los lectores manejarían, pero todavía no he encontrado una solución, ver por ejemplo: here y here.
Si se trata de más de una biblioteca RTF, las diferentes traducciones de/a RTF son una posible razón. Si el escritor RTF emite un código que el lector no comprende, todo es posible. – mjn
El nombre de la fuente \ '82l \' 82r \ '82o \' 83S \ '83V \' 83b \ '83N se muestra como '' MS PGothic'' cuando se abre con Wordpad en Windows 10. Cuando se abre con LibreOffice, o con Wordpad activado Win 7, se muestra como '' MS P ゴ シ '' ''. – mjn
Tenga en cuenta que el nombre de la fuente? L? R? O? S? V? B? N; en su pregunta parece estar ya dañado, supongo que es \ '82l \' 82r \ '82o \' 83S \ '83V \' 83b \ '83N en un estado anterior del documento. – mjn