如何在读取保存文件时管理文本格式?

时间:2010-04-29 10:02:13

标签: java character-encoding applet

我有一个java applet应用程序,其中我使用富文本区域。我写URDU是巴基斯坦的国语。我设法使用uni代码。问题是,当我在文本区域中编写urdu并为每行选择字体和颜色时,它会执行所有操作,但是当我使用UTF-8编码保存此文件然后再次打开它时,它会显示所有格式为我选择格式的文本最后一行。

我的要求是保存文件。我的意思是每个文件应该具有与保存前相同的格式。

即使在赏金之后,我仍然会遇到这个问题!日期为07-06-2010。

2 个答案:

答案 0 :(得分:1)

请注意,当您使用某种字体和颜色实际格式化文本时,它会生成一些RTF / HTML代码吗?您应该尝试获取文本区域的RTF / HTML,以便将所有格式保存在文件中。

基本上它是一个文本文件,所以你需要使用所有代码来获取它吗?

检查此链接是否有RTF格式的文本保存机制。

Java JTextPane RTF Save

另请查看HTMLEditorKit以获取更多信息。

http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/text/html/HTMLEditorKit.html

感谢。

答案 1 :(得分:0)

UTF-8是对字符的代码分配。为方便起见,决定最低127个代码在ASCII和UTF-8中是相同的。对于所有字符,代码不同。

UTF-8字体有一个字符映射(cmap),它将unicode代码分配给它们的字形。很少有字体覆盖unicode范围的大部分(我知道Arial Unicode和Gentium,还有其他一些),要在渲染解决方案中获得完全覆盖,你必须混合字体。

为了能够显示仲裁Unicode文本,您必须创建一组字体,其中一个字体是默认字体,而后缀字体是不包含默认字体的unicode字符。返回Java和Textpane:如果为Textpane中的给定文本部分选择字体,这仅表示从所选字体中使用文本字形。但是文本本身并没有以任何方式与字体相关联。

所以你有两个选择:

  1. 您不只是存储UTF-8文本, 还有关于的信息 选择的字体,或
  2. 更有趣: 您将文本存储为UTF-8 并在加载后应用字体 文字进入你的textpanel!