Saving an escape character 0x1b in an XML file

后端 未结 4 436
眼角桃花
眼角桃花 2020-12-17 06:21

We have an application that communicates with printers using their internal printer fonts. This requires sending some data in a binary format using a font description proper

相关标签:
4条回答
  • 2020-12-17 06:38

    Maybe you could repalce the ESC char with a special string of your choosing, say "MyEsc123". Before writing the file you replace all instances of 0x1B with the new string and when you read the file you make the conversion again backwords.

    0 讨论(0)
  • 2020-12-17 06:42

    iSimilar question to:

    How do I escape unicode character 0x1F in xml?

    So either the not recommended approach of

    
    

    or using base-64 as mentioned in Darin's answer

    0 讨论(0)
  • 2020-12-17 06:47

    It is impossible to save such values in an XML file. You might need to encode it before hand. You could use Base 64 for this.

    0 讨论(0)
  • 2020-12-17 06:48

    There is another way to escape such characters by using System.Xml features.

    You just need to set CheckCharacters flag to false for XmlWriterSettings.

    using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter, new XmlWriterSettings { CheckCharacters = false }))
    {
      document.Save(xmlWriter);
    }
    

    But you have to set the same flag to false for XmlReaderSettings if you want to read the xml. :)

    using (XmlReader reader = XmlReader.Create(stringReader, new XmlReaderSettings { CheckCharacters = false }))
    {
      document = XDocument.Load(reader);
    }
    
    0 讨论(0)
提交回复
热议问题