Java 8:如何将普通UTF-8文本转换为RTF符号> 127?

问题描述

我使用RTFEditorKit找到了许多“如何RTF->纯文本”,但是没有一个“纯文本-> rtf”。 我不会手动执行此操作,因为就我而言,我们必须将超过128个字符的所有字符都转换为十六进制字符串,以获取正确的RTF文件。我想用一些库来做。

我正在尝试使用RTFEditorKit:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <Meta charset="utf-8">
    <link rel="stylesheet" href="index.css">
    <title></title>
  </head>
  <body>
    <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Check_mark.svg/28px-Check_mark.svg.png" alt="image" class="hidden">    
    <button type="picture" id="button">Click Me</button>
    <script src="index.js" charset="utf-8"></script>
  </body>
</html>

但是无法将纯文本读取到Document对象中。

解决方法

我不确定我能否查明代码中哪里出了问题,但这对我有用。我将字符串插入Document

String orig = "Hello Привет こんにちは";

RTFEditorKit rtfParser = new RTFEditorKit();
javax.swing.text.Document doc = rtfParser.createDefaultDocument();

doc.insertString(0,orig,null); 
int docLen = doc.getLength(); 

OutputStream os = Files.newOutputStream(Paths.get("test.rtf"),StandardOpenOption.CREATE);

rtfParser.write(os,doc,docLen);