Some charachters gets ruined by upper/lowercase

If I select this:

DECLARE
cc char := ':magnifying_glass_tilted_left:';
BEGIN
-- :magnifying_glass_tilted_left:
END;

And then press CTRL + L or U for upper/lower casing it the symbols (hex code D83D DD0D) gets destroyed (turns into �, hex code FFFD). So there are a couple of issues here:

  1. Content in string is modified (normal letters are not)
  2. Content in comment is modified (normal letters are not)
  3. Content is modified incorrectly (FFFD is not lower or upper case of :magnifying_glass_tilted_left:)
  4. After the operation the selected text changes to include text after the selection (without changing it)

Possibly related Weird behavior with non-standard characters

Toad for Oracle v25.1.20.5192

Yes it is related to your linked post. I explain it in more detail here. Unicode confuses command detection in the editor - #2 by dirk.mika1

To expand upon my post in that thread, this lower/upper case issue has the same root cause, but we’re specifically working with the Char datatype which alone cannot store a complete emoji. The case change code iterates over the selection and checks the styling of the text so that comments/strings are not impacted by the operation. When a selection consists entirely of a string or comment then case operations affect the selection and in this case it works without issue because we can allow the edit control to handle the case change natively.

I’m logging this one as we may be able to fix it safely. Generally speaking, emoji support in the Editor is limited.