It is nice to move away from the C preprocessor:
enum { HebrewCharMin=0xfb20, HebrewCharMax=0xfb4f, };
enum { HebrewCharMin=0xfb20, HebrewCharMax=0xfb4f, };
Note: in C++, global/static const values do behave as compile time constant expressions and are an excellent tool for this purpose.
On the other hand, I'm really a C++ guy, and in that domain, I'd prefer your "const uint32_t" solution. It just feels more idiomatic.
Additionally and somewhat pedantically, I prefer naming conventions that make it clear when values are a constant, so I'd use "kHebrewCharMin" or something simliar.
The other thing is that function signatures can now show 'enum myenum e' instead of 'int v', which is much clearer.
But here, the values /don't/ form a closed set, and using enums would imply that they do.