Character encoding: Difference between revisions

From FreeMind
Jump to navigationJump to search
No edit summary
No edit summary
Line 33: Line 33:
==Limitations==
==Limitations==
* There is no or little support for XML declaration at the top of the mind map file; to be tested and clarified.
* There is no or little support for XML declaration at the top of the mind map file; to be tested and clarified.
* No way to choose, upon reading, from a variety of encodings in the file, which would be indicated e.g. by encoding attribute of the map element or in the XML declaration if it was there. This limitation seems very minor given one can use a conversion tool to convert from any encoding to UTF-8 or one can generate UTF-8 directly.
* Probably no writing in UTF-8, as per above.
* Probably no writing in UTF-8, as per above.



Revision as of 16:32, 6 June 2023

FreeMind stores Unicode characters as XML character entities into mind map files.

Reading of UTF-8 encoded mind map files is supported, with or without UTF-8 byte order mark (BOM).

Reading of UTF-32BE, UTF-32LE, UTF-16BE and UTF-16LE seem to be all supported provided the mind map starts with byte order mark (BOM).

Writing of UTF-8 is probably not supported; there was a feature request for this.

FreeMind does not write any BOM natively; given it writes XML character entities, it would make no sense.

Implementation

Reading:

  • Class FileReaderCreator in MindMapMapModel uses UTF-8 as the character encoding: 'return new UnicodeReader(new FileInputStream(mFile), "UTF-8");'
  • The above class is instantiated in MindMapMapModel.loadTree(final File) method.
  • Which is called from MindMapMapModel.load(File file).
  • Class UnicodeReader determines the encoding from byte order mark (BOM), if any; it seems to take the passed-in "UTF-8" in case there is no BOM.

Writing:

  • XMLElement.writeEncoded() encodes Unicode points such that unicode < 32 or unicode > 126 as XML character entities.

Links:

Tracker items

Limitations

  • There is no or little support for XML declaration at the top of the mind map file; to be tested and clarified.
  • No way to choose, upon reading, from a variety of encodings in the file, which would be indicated e.g. by encoding attribute of the map element or in the XML declaration if it was there. This limitation seems very minor given one can use a conversion tool to convert from any encoding to UTF-8 or one can generate UTF-8 directly.
  • Probably no writing in UTF-8, as per above.

See also