Handle SpecialCharacters with unicode equivalents as normal text
SpecialCharacters are certainly necessary in places where there is no unicode equivalent (such as AUTOPAGENUMBER) but for many characters with unicode equivalents (BULLETCHARACTER, COPYRIGHTSYMBOL), it complicates string manipulation with no benefit (that I can see).
mySelectionContents = app.selection.contents;
alert("The current selection is when added to a string is " + mySelectionContents);
alert("The current selection is when coerced to a string is " + String(mySelectionContents));
If you select a single bullet character, and force the specialCharacter to a string by adding it to the alert string you get "1396862068" or "BULLET_CHARACTER" if you explicitly convert to a string. You get an error in some places if you try to use mySelectionContents as text without this explicit conversion (my specific issues is objectExportOptions.customAltText).
If you select two bullet characters with nothing else, you get •• with no need to coerce anything.
Ideally any character that has a unicode equivalent should be removed from the "special characters" set and handled like a normal character.
If thats not possible, when getting the contents of a text object, the behavior should be the same regardless of the number of selected character, and should return the proper unicode value and not the special character value.
Allow specialCharacters to be a valid value for objectExportOptions.customAltText (would fix the specific issue I'm having today, but there are a few other places where I have already worked around this issue)
If none of these is possible, as a last resort, please provide access to the function used when multiple special characters in a row are selected, so we can use the same conversion.