<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">Hi </span><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px"> I'm trying to extract CGM files from a NITF but the CGM are corrupt. </div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Â First I Unescape the CGM Data and I obtain something like</div><div style="font-family:arial,sans-serif;font-size:13px">
  "\0,\vCreated CGM \"\0 f\0 ÿÿ\0 ...</div><div style="font-family:arial,sans-serif;font-size:13px"> Then write the text file. </div><div style="font-family:arial,sans-serif;font-size:13px"> </div><div style="font-family:arial,sans-serif;font-size:13px">
 I compared this string with a CGM obtained from NITRO NITF (nitro_extract_cgm.exe).</div><div style="font-family:arial,sans-serif;font-size:13px"> The new CGM file start with  </div><div style="font-family:arial,sans-serif;font-size:13px">
  "\0,\vCreated CGM \"\0 f\0 ��\0<br></div><div style="font-family:arial,sans-serif;font-size:13px"> I succeed to read this CGM file with a CGM viewer. </div><div style="font-family:arial,sans-serif;font-size:13px">
<br></div><div style="font-family:arial,sans-serif;font-size:13px">One of the difference come from caracter like ÿ (from GDAL) � from NITRO</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">
Then It's probably something I missed in the Escaping/Unescaping function </div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Because UnescapeScring wasn't exposed in C# I wrote a function : </div>
<div style="font-family:arial,sans-serif;font-size:13px"><div>static public string UnescapeString(string pszInput)</div><div>Â Â Â Â {</div><div>Â Â Â Â Â Â Â string pszOutput=""; Â Â </div><div>Â Â Â Â Â Â int iIn = 0;</div>
<div>Â Â Â Â Â Â for (iIn = 0; iIn<pszInput.Length; iIn++)</div><div>Â Â Â Â Â Â {</div><div>Â Â Â Â Â Â Â Â if (pszInput[iIn] == '\\')</div><div>Â Â Â Â Â Â Â Â {</div><div>Â Â Â Â Â Â Â Â Â Â iIn++;</div><div>
          if (pszInput[iIn] == 'n')</div><div>            pszOutput += '\n';</div><div>          else if (pszInput[iIn] == '0')</div><div>            pszOutput += '\0';</div>
<div>Â Â Â Â Â Â Â Â Â Â else</div><div>Â Â Â Â Â Â Â Â Â Â Â Â pszOutput += pszInput[iIn];</div><div>Â Â Â Â Â Â Â Â }</div><div>Â Â Â Â Â Â Â Â else</div><div>Â Â Â Â Â Â Â Â {</div><div>Â Â Â Â Â Â Â Â Â Â pszOutput += pszInput[iIn];</div>
<div>Â Â Â Â Â Â Â Â }</div><div>Â Â Â Â Â Â }</div><div>Â Â Â Â Â Â return pszOutput;</div><div>Â Â Â Â }</div></div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">
thanks in advance!</div><div style="font-family:arial,sans-serif;font-size:13px">Best regards </div></div>