How to use multibyte file names in adb shell? I have a Galaxy S6 running Android 7.0:
zeroflte:/ $ getprop ro.build.version.release                                
7.0

There exists a file which uses the Unicode codepoint U+1F308 (RAINBOW) in its name:
zeroflte:/ $ ls -al /sdcard/tmp
total 1024
drwxrwx--x  5 root sdcard_rw 4096 2020-07-09 05:44 .
drwxrwx--x 49 root sdcard_rw 4096 2020-06-25 07:27 ..
-rw-rw----  1 root sdcard_rw   17 2018-04-25 20:47 123.org
drwxrwx--x  2 root sdcard_rw 4096 2020-07-09 05:54 crypt
-rw-rw----  1 root sdcard_rw    9 2020-07-08 13:26 .gpx
zeroflte:/ $                                                                                                                                                                                                                                 

However, I have no idea how to use this file name in an adb shell command. I would like to apply ls -1 -d -l /sdcard/tmp/\.gpx or similar, but I cannot enter the RAINBOW char. Any idea how to do this?
mksh developer here.
mksh uses UTF-8 internally, but is currently limited to the BMP (basic multilingua plane), which means U+0000 to U+FFFD. If you want to use SMP codepoints (U-00010000 to U-0010FFFD) on the input line, you currently have to disable the UTF-8 mode (sorry):
$ set +U

That switches to a byte-wise mode which does not limit the input. (You can tab-complete files with SMP characters in them, but not directly input them, because input is validated.)
$ set -U   # switches back to UTF-8 mode

Switching mksh to full 21-bit Unicode is already on my TODO, and I’m currently hoping to be able to provide it for the next release.