What do you mean by "system support"? The system is mostly pushing bytes along, the programming languages/UI ovaries tend to do all the hard work. So it is usually more interesting to see what those support.
Programming
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities [email protected]
Emoji support is probably the best way to demonstrate what I mean:
A simple example: if this (๐ฆโโฌ) renders as an image of a blackbird, your system supports Unicode 15.0.
A more complex example: if this (๐งโโ๏ธ) appears as a judge, your system supports Unicode 12.1, if it appears as a Person followed by Scales your system supports Unicode 10.0, and if you can only see the Scales, your system supports Unicode 4.1.
The downstream use case would be to avoid attempting to output specific characters for a user that wouldn't see them correctly (i.e. if I want to output a blackbird, I want them to see it, or if I output a judge I don't want them to see scales).
Which programming language do you have in mind?
I'm flexible tbh, but my initial checks with a Python approach led me to unicodedata.unidata_version
, which is correct for Python support but not system support.
Is this "support" in the sense of "can this sequence of code points be rendered correctly to the screen"?
OS and font dependent.
I don't know of any existing library, but I think it should be relatively easy to wrap existing APIs for all the major operating systems (locale
on Linux, some PowerShell voodoo on Windows...) behind a single call, and just use runtime checks/conditional compilation to use the right one behind the scenes.
Edit: wait, I confused Unicode version for encoding type (8/16/32). Sorry, that's my bad.