JavaScript / NodeJS RTF CJK转换

问题描述 投票:0回答:1

我正在研究一个可解析RTF文件并进行一些查找和替换的节点模块。我已经想出了一种以转义的unicode here表示的特殊字符的解决方案,但是在涉及CJK字符时遇到了麻烦。是否有简单的方法可以通过JavaScript或使用库或内置方法来进行这些转换?

示例:

以纯文本格式查看的RTF文件包含:

Now testing symbols {鈴:200638d}

在NodeJS中解析时,文件的这一部分看起来像:

Now testing symbols \{
\f1 \'e2\'8f
\f0 :200638d\}\

我了解\f1\f0表示字体更改,并且\'e2\'8f块是实际字符...但是我如何才能将\'e2\'8f转换为,或者相反,将其转换为\'e2\'8f

我尝试用不同的编码查找字符,但看不到任何与\'e2\'8f相似的内容。我知道RTF控件\'hhA hexadecimal value, based on the specified character set (may be used to identify 8-bit values)source),或者更好的定义来自Microsoft RTF Spec; %xHH (OCTET with the hexadecimal value of HH)download),但我不知道如何处理这些信息才能进行转换。

javascript node.js escaping rtf cjk
1个回答
0
投票

我能够使用my RTF parser解析您的示例文件并检索正确的字符。

关键是\fonttbl命令,顾名思义,它定义了文档中使用的字体。作为每种字体定义的一部分,\fcharset命令确定该字体要使用的字符集。您需要使用它来正确解释字符数据。

我的解析器将参数从\fcharset映射到代码集名称here,然后将其转换为字符集名称,该名称可用于检索正确的JavaCharsethere。您的字符集处理方式显然会与使用Javascript时有所不同,但希望此信息将有助于您前进。

© www.soinside.com 2019 - 2024. All rights reserved.